ThunderbirdとApple Mail間の添付ファイル名の文字化け
- 前回のエントリで述べたように、Thunderbird 3とApple Mail 4.2は、ともにRFC 2231をサポートしているが、その方法に若干の違いがある。
- 長いファイル名をRFC 2231でエンコードする際、Thunderbirdは複数行に分割し、Apple Mailは分割しない。下図は、「あいうえおあいうえおあいうえお.png」というファイルを添付して送信した例。Apple Mailがエンコードしたfilenameパラメータには、(図ではウインドウの幅の制限により折り返し表示されているが)改行コードは入っていない。
Each line of characters MUST be no more than 998 characters, and SHOULD be no more than 78 characters, excluding the CRLF.
- とするなら、Apple Mailの実装は「SHOULD(したほうがよい)には従わなくてもいい」という考え方なのだろう。
- ここまでは、エンコードの話。問題となるのは、デコードのほうだ。Apple MailはRFC 2231方式でエンコードされた複数行のパラメータを、連結してからデコードするのではなく、デコードしてから連結する。このため、1文字が2行にまたがっていた場合、その文字以降が化けてしまう(下図)。Apple Mailのバグだと思う*1。
- メーラーの中でも添付ファイル名の扱いにおいて比較的RFCを尊重しているThunderbirdとApple Mailの間で文字化けが発生するという状況は残念なので、直してほしい。
*1:以前に書いたように(AOLメールの件名の文字化け)、RFC 2047では、文字単位で行分割することになっている。このルールをRFC 2231にまで適用してしまったのかな、という気もする。