質問: ### 前提・実現したいこと ある文字列を、自力でエンコードに変換できるようになりたいです。 ### 発生している問題・エラーメッセージ ``` エンコードの変換表は覚えましたが、64進数にする方法がわかりません。ASCII値というものもわかりません。 ``` ### 該当のソースコード ### 試したこと いろいろな文字列を自分なりに、エンコードに変換してみましたが、変換ツールと全く違うものになります。 ### 補足情報(言語/FW/ツール等のバージョンなど) Wikipediaを見て、やりました。
回答: エンコード(Encode)というのは、コード化(符号化)するという意味です。 例えば、郵便番号というのは、郵便を配達する区域を表す符合です。 東京都千代田区飯田橋 を 102-0072 に変換するのが郵便番号という符号によるコード化です。 逆に、符号から平文(人間が普通に読める文字列)に戻すのをデコード(Decode:復号)と言います。 102-0072 を 東京都千代田区飯田橋 に変換するのが復号です。 どんな符号を使うかによって、様々な符号化があります。 例えば、URLで使えるのは半角英数字と一部の記号に限られます。そこで、日本語など多バイト文字が含まれている文字をURLで使うには、URLエンコードという符号化が行われます。 例えば「ゴリラ」の3文字をURLエンコードすると「%83S%83%8a%83%89」になります。 Base64は、7ビットのデータしか扱うことのできない電子メールなどで利用されている符号化で、64種類の印字可能な英数文字のみを使った文字列に変換されるものです。(Base64という名前は、64種類の文字だけを使うところから規程増す) Base64は、元のデータを3バイト(24bit)ごとに区切り、区切られた24bitを4分割して6bitのデータを4つにします。各6bitの値(0~63)を64種類の文字の1番目から64番目に割り当てたら、Base64エンコードされた文字列(4文字)が得られます。これを繰り返せばBase64エンコードが出来上がります。最後の区切りが1バイトなら6bitと2bitに、2バイトなら、6bit,6bit,4bitに分割します。 ちなみに、64種類の文字とは"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789/+"です。