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

oike oike @ micsnet.co.jp
2003年 8月 7日 (木) 16:57:58 JST


初めましてoike と申します。

OS Windows NT sp6a
Apache 1.3.27
PHP 4.3.1
DB MS-Access

上記の環境で開発しています。

文字エンコーディングは全て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

しかし、php間で値を受け渡していると、まれに文字化けがおこり
「、「e、「、、w、、d
のように表示されることがあります。
最初mdbが悪いのかと思っていましたが、
DBに書き込む直前の値およびその時のinternal_encodingの値を
ファイルなどに吐き出してみると、既に文字化けしており
かつmb_internal_encoding()の戻り値はEUC-JPになってました。
また、文字化けが起こった直後に、phpinfo();でパラメータ見てみると、
mbstring.internal_encoding の Local Value が EUC-JPと表示されます。
リロードするとSJISになりますが、まれにEUC-JPになります。
Apacheを再起動して直後に文字化けが起こりやすいような気がします。

文字化けの原因や解決策のアドバイスをよろしくお願い致します。




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