MIME Encoding
MIME(Multipurpose Internet Mail Extensions)エンコーディングは、メールで非 ASCII テキストやバイナリ添付を運ぶ仕組みを定義する。Base64 と Quoted-Printable のコンテンツ転送符号化を含む。
目的
当初 7 ビット ASCII しか扱えなかった SMTP を拡張し、任意のバイト列や多言語テキストを運べるようにする。
メカニズム
Content-Transfer-Encoding ヘッダが符号化を宣言する。7bit/8bit/binary はそのまま通し、base64 は任意のバイナリを符号化し、quoted-printable は印字不能文字だけをエスケープする。Content-Type ヘッダは MIME タイプと境界を宣言する。
ユースケース
- メール添付の転送
- HTTP multipart/form-dataアップロード
- Usenetバイナリ添付
- S/MIME暗号化メール
例
- 入力
Content-Transfer-Encoding: base64OutputSGVsbG8=The body is Base64-encoded as declared
よくあるエラー
- Decoding a MIME attachment while ignoring the Content-Transfer-Encoding header
- Decode according to the header first, then interpret the result using the charset
関連用語
Base64
Base64 は任意のバイナリデータを 64 種類の印刷可能 ASCII 文字(A-Z、a-z、0-9、+、/)へ写像し、バイナリデータをテキスト専用チャネルで伝送できるようにする。 用語集
Quoted-Printable
Quoted-Printableは、主にASCIIで構成されるテキスト向けのMIMEコンテンツ転送エンコーディングである。印字不可能な文字だけを =HH にエスケープし、本文の大半を読める状態に保つ。 用語集
Charset
文字セット(charset)とは、文字から符号位置への対応表であり、符号化形式(UTF-8 など)と組み合わさって、テキストがバイト列になる方法を決定する。 用語集
関連ツール
MIME エンコーダー
Encode text to MIME format (Base64 or Quoted-Printable) for email content。無料、プライベート、100%クライアントサイド。 ツール
MIME デコーダー
Decode MIME-encoded text (Base64 or Quoted-Printable) back to original content。無料、プライベート、100%クライアントサイド。 ツール
MIME タイプリファレンス
Reference table of common MIME types mapped to file extensions with descriptions。無料、プライベート、100%クライアントサイド。 ツール
MIME ヘッダーエンコーダー
Mime Encode Header — 純クライアントサイドツール。プライバシーファースト、サーバー往復なし。 ツール
MIME ヘッダーデコーダー
Mime Decode Header — 純クライアントサイドツール。プライバシーファースト、サーバー往復なし。 ツール