[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 メーリングリストの案内