[PHP-users 17247]Re: window環境での文字化けに関してです

Youichi Iwakiri yiwakiri @ st.rim.or.jp
2003年 8月 8日 (金) 12:01:05 JST


いわきりです

oike wrote in <00ed01c35cb9$9df721f0$1301a8c0 @ mics.micsnet.co.jp> :
>文字エンコーディングは全てSJISで行ないたいので以下のように
>php.iniを設定しています。
>mbstring.language = japanese
>mbstring.http_input = SJIS
>mbstring.http_output = SJIS
>mbstring.detect_order = SJIS
>mbstring.substitute_character = none
>mbstring.encoding_translation = On
>mbstring.internal_encoding = SJIS
>mbstring.func_overload = 7
>mbstring.script_encoding = SJIS

環境は、
Windows 98 SE
Apache-1.3.27
PHP-4.3.2 (本家のphp-4.3.2-Win32.zip)
マルチバイト対応版PHP-4.3.2 (PHP 4.3.2,マルチバイト対応版v.1.1)
上記組み合わせで、試しました。

Apache起動後の最初のアクセス時、およびアクセスに間隔が開いている
場合(10分とか未アクセスにしておいて)に
Build Date => Jun  3 2003 08:22:44
                             Local Value   Master Value
mbstring.internal_encoding   => EUC-JP     => SJIS
となります。

php-cli.exe では確実に
c:\> php -i
Build Date => Jun  3 2003 08:22:44
                             Local Value   Master Value
mbstring.internal_encoding   => EUC-JP     => SJIS
となります。

同件として
http://ns1.php.gr.jp/pipermail/php-users/2003-June/016773.html
で報告されていますが未解決のままです。

Linux/FreeBSD環境では、php.iniの設定が反映されていましたが
Windows版のみMasterValueが置き換えられる現象と思えます。
マルチバイト対応版だけの問題でなく、php4ts.dll自体が問題
ありと考えています。

現在、Visual Cを使える環境に無いので、
どなたかphpのinitialize sequenceを追える人がいれば
追い掛けてもらえないでしょうか。


暫定的な対策としては、スクリプトの最初に
ini_set('mbstring.inetrnal_encoding', 'SJIS');
を入れる事でなんとかごまかせるかもしれません。

-- 
Youichi Iwakiri



PHP-users メーリングリストの案内