[PHP-dev 1161] Re: mb_encode_mimeheader() が正常に動作しない件について
Seiji Masugata
s.masugata @ digicom.dnp.co.jp
2005年 7月 16日 (土) 15:38:14 JST
桝形です。
> PHP 5.0.x や PHP 5.1 のベータ版では確認はしていませんが、PHP 4.4.0 でテスト
> したPatch を添付しますので、もしよければどなたかテストしてみてください。
> Patch ではコメントの間違いと思われる部分も修正しています。
PHP 4.4.0 での確認ですが、適当したら短い文字でも化けなくなりました。
スバラシイ。
別のトコロで気になったのですが、mb_decode_mimeheaderはISO-2022-JP以外は
対応してないのでしょうか。バグなのか仕様なのか、気になります。
http://jp.php.net/manual/ja/function.iconv-mime-decode-headers.php
See also iconv_mime_decode(), mb_decode_mimeheader(), imap_mime_header_decode(),
imap_base64() and imap_qprint().
と書いてあったたので、mbsgringも対応してるモノだと思ってました。
[masugata @ localhost]$ less -N rm5.php
1 <?
2 $A = mb_encode_mimeheader( "表題" );
3 var_dump( $A );
4 $B = mb_decode_mimeheader( $A );
5 var_dump( $B );
6
7 $A = mb_encode_mimeheader( "表題", "EUC-JP", "Q" );
8 var_dump( $A );
9 $B = mb_decode_mimeheader( $A );
10 var_dump( $B );
11 ?>
[masugata @ localhost]$ ./php-4.4.0 rm5.php
string(34) "=?ISO-2022-JP?B?GyRCST1CahsoQg==?="
string(4) "表題"
string(25) "=?EUC-JP?Q?=C9=BD=C2=EA?="
string(4) "表題"
[masugata @ localhost]$ less -N rm6.php
1 <?
2 $A = mb_encode_mimeheader( mb_convert_encoding( "表題", "UTF-8", "EUC-JP" ), "UTF-8" );
3 var_dump( $A );
4 $B = mb_decode_mimeheader( $A );
5 var_dump( $B );
6 var_dump( mb_convert_encoding( $B, "EUC-JP", "UTF-8" ) );
7
8
9 $A = mb_encode_mimeheader( mb_convert_encoding( "表題", "UTF-8", "EUC-JP" ), "UTF-8", "Q" );
10 var_dump( $A );
11 $B = mb_decode_mimeheader( $A );
12 var_dump( $B );
13 var_dump( mb_convert_encoding( $B, "EUC-JP", "UTF-8" ) );
14
15 ?>
[masugata @ localhost]$ ./php-4.4.0 rm6.php
string(20) "=?UTF-8?B?6Iy1Pz8=?="
string(4) "茵??"
string(2) "??"
string(27) "=?UTF-8?Q?=E8=8C=B5=3F=3F?="
string(4) "茵??"
string(2) "??"
--
Seiji Masugata <s.masugata @ digicom.dnp.co.jp>
PHP-dev メーリングリストの案内