このページの本文へ

前へ 1 2 次へ

電子メールプロトコル再入門 第3回

メールで日本語を使うための仕組みを知ろう

メール誕生からある「7ビットの制約」を越えるMIMEとは?

2011年02月17日 06時00分更新

文● 遠藤哲

  • この記事をはてなブックマークに追加
  • 本文印刷

バイナリデータをUS-ASCIIにBASE64

 BASE64符号化は、3個の1バイト(8ビット)の集合をUS-ASCIIで表示可能な文字4文字に変換する。バイナリデータを、電子メールで転送するのに適した形式にする仕組みだ。

図5●BASE64エンコーディング

 図5に示すように、変換の対象となるデータを3バイト単位(8ビット×3=24ビット)で取り出し、6ビットずつ4つのパートに分ける。次に、分けたそれぞれのパートの6ビットの値を、表2に示すBASE64符号化の値と文字の対応表を参照しながら表示可能な文字に変換し、4文字のUS-ASCIIにする。

 これはデータのバイト列全体が符号化されるまで繰り返され、符号化データが作られる。また符号化されたデータは、1行が76文字以下となるように「CRLF(復帰改行)」が挿入される。

表2●BASE64:6ビットの値と対応文字

 なお、元のバイト列の最後に2バイトまたは1バイトの半端が残った場合、ちょうど3バイトとなるように値0のバイトが「パディング(padding、詰め物/埋め草)」される

 データを3バイトのまとまりにしたら、これをさらに6ビットずつ4つのパートに分ける。この際、パディングしたバイトから切り出された6ビットは値が0となる。この0をそのまま用いると、表2にあるとおり「0」は「A」に変換されるため、有効なデータと区別がつかなくなってしまう。そこで、パディングしたバイトから切り出された6ビットはパディング文字「=」に置き換えられる。

 このように、BASE64符号化を使うと元のデータバイトよりサイズが大きくなる。しかし、すべてUS-ASCII文字に置き換えられるので、7ビット環境でも問題なく転送が可能になるわけだ。

 ●

 次回は、MIME編の最後として、添付ファイルを実現する「マルチマート」などの仕組みを見ていこう。

前へ 1 2 次へ

カテゴリートップへ

本記事はアフィリエイトプログラムによる収益を得ている場合があります

この連載の記事

アクセスランキング

  1. 1位

    ITトピック

    実用化が楽しみすぎるスマート技術たち 「長距離ワイヤレス給電」から「室内向け太陽電池」「超音波センサー」まで

  2. 2位

    ビジネス・開発

    富士ソフトがエンジニア1万人超を「AIネイティブ」化 実装力を武器にフィジカルAIなど3本柱に注力

  3. 3位

    sponsored

    AIインフラ市場“一強体制”を崩せるか AMDが「Helios」で体現するオープン戦略とフィジカルAIのラストマイル

  4. 4位

    ITトピック

    IT技術者の8割超「AI生成コードには人間のレビューが必要」/「偽・誤情報を見破れる」と自信を持つ人はICTリテラシーテストの正答率が低い、ほか

  5. 5位

    ITトピック

    6.4万人の熱狂をAIが導く FIFA W杯全スタジアム「デジタルツイン」化が変えた観戦体験

  6. 6位

    デジタル

    買い切り型クラウド「pCloud」がDX総合EXPOへ CEO来日で日本展開を加速

  7. 7位

    Team Leaders

    SharePointリストへの登録データを、CSVファイル形式に成形/変換して自動保存する方法

  8. 8位

    TECH

    攻撃するAIと防御するAI 日本企業のセキュリティ対策にいま何が必要か?

  9. 9位

    ITトピック

    「クロスの定義とは?」 AIに“サッカー言語”を教えることから始まった、FIFAとLenovoの協業

  10. 10位

    ビジネス

    開発案件の立ち上げを「60分から1分」に ソースコード管理も一本化したKDLのBacklog活用術

集計期間:
2026年07月16日~2026年07月22日
  • 角川アスキー総合研究所