[PHP-users 8440] レスポンスヘッダを出力すると自動変換してくれない
桝形 誠二
php-users@php.gr.jp
Fri, 05 Jul 2002 18:12:25 +0900
こんばんわ、桝形です。
レスポンスヘッダを出力すると自動変換してくれない現象に
出くわしました。
色々試した結果を報告します。
[mbstring関連の設定]
output_buffering = Off
output_handler =
mbstring.internal_encoding = EUC_JP
mbstring.http_input = auto
mbstring.http_output = SJIS
mbstring.detect_order = auto
mbstring.substitute_character = auto
;mbstring.script_encoding = Shift_JIS
テストスクリプト( ソースコードはEUCで記述 )
<?
// サーバの内部コードはEUCだけど、出力はSJISの設定
// レスポンスヘッダの指定でSJISを指定
header( "Content-Type: text/html; charset=Shift_JIS" );
mb_http_output( "SJIS" );
ob_start( "mb_output_handler" );
echo "[レスポンスヘッダで議論中。。。]";
phpinfo( );
?>
【結果】
○:文字化けしない
×:文字化けしている
化けるというより自動変換していないような挙動。
EUCのまま出力されているようです。
自動変換しないような仕様に変更されたのでしょうか?
┌──────┬───┬────┐
│ バージョン │ 本家 │ 国際化 │
├──────┼───┼────┤
│ 4.1.2 │ ○ │ ○ │
├──────┼───┼────┤
│ 4.2.0 │ ※1 │ ※1 │
├──────┼───┼────┤
│ 4.2.1 │ × │ × │
└──────┴───┴────┘
※1
header( "Content-Type: text/html; charset=Shift_JIS" );
を指定するとトんでもない結果になりました。
phpinfoも表示されない、変数も出力されない。
はずすと正常に表示するようになりました。
という結果になりました。
当MLのアーカイブ、Google等で探しているのですが、
似たような事例を見つける事ができませんでした。
http://ns1.php.gr.jp/pipermail/php-users/2002-April/007075.html
が怪しいのかなぁ。。。という記事を発見しました。
ただ、PHP 4.2.0-devコミットしたとの報告があったので
これじゃないのかなぁ?と確証をつかめません。
【環境】
OS : Redhat Linux6.2J
Apache : 1.3.26
クライアントの環境はWindowsとか普通のWebブラウザです。
説明不足や足りない情報があるかもしれませんが、
何かお気づきの点がありましたら、ご指摘願います。
_______________________
桝形 誠二( Masugata Seiji )
E-Mail : s.masugata@digicom.dnp.co.jp
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄