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] なんてのが件名の始めに良くつくけど、返信の際のこの部分の処理の際に、ここのところがエンコードされていると、うまく行かないメーリングリストサーバがあるんです。