mb_encode_mimeheader

http://blog.poyo.jp/archives.php/categ+1/year+2005/month+10/id+1128957805
の、PHPのmb_encode_mimeheader関数について書かれている。

調べたのは1年以上も前だけど、僕も、mb_encode_mimeheaderの動作を調べたなー。僕的な問題点は、

  • ISO-2022-JPの時、行の折りたたみのとき、英数モードに戻らない。英数モードに戻るのが必須なのかどうか知らない。ただ、戻らないと、1行ごとに復号できないのよ。
  • ヘッダ名称も含めて1行78バイト以下にすべしと言う点からすると、最初の行は74バイトより短いところで折りたたみたいところだ。
  • ASCII文字列+半角スペース+全角文字、というように始まる文字列に関しては、最初のASCII文字列のところをエンコードしない方が望ましい。というのも、メーリングリストで、[phpug-admin 879] なんてのが件名の始めに良くつくけど、返信の際のこの部分の処理の際に、ここのところがエンコードされていると、うまく行かないメーリングリストサーバがあるんです。