復習がてら。
日本語というかマルチバイトは使えないのでエンコードする必要あり。
形式
=?
? ?<エンコードされたヘッダ文字列>?=
ISO-2022-JP(JISコード)が使われる理由
欧米様式の7ビット規格のサーバやソフトを経由したら、1ビット分が破棄されるという事態になることがあります。これが、「文字化け」という現象です。(もし文字化けメールを受け取ったら、相手のメーラーの設定を確認してもらいましょう)そこで、この現象を避けるために、日本語の文字コードでも7ビットコードを使う方法が考え出されました。
ほう。
iso-2022-jp用のエンコード/デコード
端末の設定はutf8。nkfのデフォルトの出力は-jのJIS出力なので-j,-Jオプションはいらない、かも。
encode
$ echo 日本語テスト | nkf -W -M -j =?ISO-2022-JP?B?GyRCRnxLXDhsJUYlOSVIGyhC
メーラで件名を"日本語テスト"にして送信、受信したメールのヘッダを確認。
Subject: =?ISO-2022-JP?B?GyRCRnxLXDhsJUYlOSVIGyhC?=
decode
$ echo GyRCRnxLXDhsJUYlOSVIGyhC | nkf -J -mB -w 日本語テスト
UTF8用のエンコード/デコード
encode
$ echo 日本語テスト | nkf -W -M -w =?UTF-8?B?5pel5pys6Kqe44OG44K544OI
メーラで件名を"日本語テスト"にして送信、受信したメールのヘッダを確認。
Subject: =?UTF-8?B?5pel5pys6Kqe44OG44K544OI?=
decode
$ echo 5pel5pys6Kqe44OG44K544OI | nkf -W -mB -w 日本語テスト