PHP の mb_encode_mimeheader() の正しい使い方
「mb_encode_mimeheader()に渡す文字列はISO-2022-JPに変換するな。」
http://blog.cheki.net/archives/1125
ということらしい。
mb_encode_mimeheader() は、
- 第一引数:内部エンコードの文字列
- 第二引数:"ISO-2022-JP"
でいいみたい・・・。
<?php mb_language('ja'); mb_internal_encoding('UTF-8'); $subject = '十分に長いsubjectでのテストを行います、まる'; # 正しい例 echo mb_encode_mimeheader($subject, 'ISO-2022-JP'), "\n"; # 誤った例 echo mb_encode_mimeheader(mb_convert_encoding($subject, 'ISO-2022-JP', 'UTF-8')), "\n";
実行結果:
$ php test.php | nkf 十分に長いsubjectでのテストを行います、まる 十分に長いsubjectでのテストを行い$^$9!"$^$k