?って聞きなれない言葉だと思いますが、普段なにげなく使用しているメールで使用されていたりするのです。そもそもインターネットで使用される文字というのは、7bitコードを前提で通信を行っていたために、wordのファイルや、jpg画像なんかのバイナリファイルを送る事ができなかったんです。MIME規格(RFC1521/RFC1522)と呼ばれる手順が制定されました。これによって現在の「メールで添付ファイルを送る」っていうのが当たり前のようにできるようになったんです。メールにかけられた呪文BASE64エンコードとはMIME規格では、バイナリファイルを送る/受ると手順が決まってもあいかわらず制御コードを含む8bitコードを送る事は許されていないため、なんとか7bitコードに変換して・・・・っていう事が考えだされました。変換元となるバイナリファイルから3バイトずつ読み込み、その読み込んだ3バイト(24bit)を今度は、6bitずつ読み込み(計4回)それを64種類の変換テーブルに従って変換していくというもの。することで、どんなバイナリファイルでも7bitコードに変換された文字列となるためメールで送れるということなんです。ちなみに受信側では、変換を行った逆の動作を行えば、変換元バイナリファイルに復元できるって寸法です。ちなみにこんな処理になります。1.エンコードすべきデータから、3バイト取得する。2.取得した3バイトを24ビットのデータ領域に設定する。3.上位から6ビットを取り出し、その数値を下記の変換テーブルに従いキャラクター文字に変換する。4.次の6ビット以降も同じ変換を行い、24ビットすべて変換する。5.エンコードすべきデータが無くなるまで、1〜4の作業を繰り返す。最終位置に'='を付加する。最終位置に'=='を付加する。変換テーブル:6ビットデータの「0〜63」を以下の文字列に変換する。「6ビットのキャラクター、4の倍数単位」に変換すると言う意味を持ちます。上記で説明したようにバイナリデータを全て「6ビットのキャラクター、4の倍数単位」の変換を行い7bitコードにしてしまうため、wordの文章だろうが、jpeg画像だろうがなんでもokという点が長所といえるでしょう。逆に短所としては、変換元バイナリデータを3バイト単位で変換し4バイトとするため。変換後は4/3≒1.3倍の大きさとなってしまうことです。BASE64エンコード変換します。始めの3バイト('Hel')を取得し24ビット変換します。変換されることを確認します。2バイトなので、それまでにBASE64エンコード変換した文字列の最終位置に'='を付加します。'SGVsbG8='となります。最終的にBASE64エンコード変換した結果となります。エンコード/デコードのサンプルを作りましたのでよかったら見て理解してください。Cコンパイラでコンパイルできると思います。どこで使われているの?って疑問ですよね。ソースの表示」を実行してみてください。文字が見受けられますね。"TgAtb"から始まる文字列、そうですこれがエンコードされたデータなのです。なにもんだ?っていうときに調べたリンク先です。Delphi[..戻る..]。