[PHP-users 31423] Re: PHP5.2.0でmultipart/form-dataを使用すると文字化け
nakamura @ from.co.jp
nakamura @ from.co.jp
2007年 2月 7日 (水) 16:25:15 JST
中村です。
うしろさんお返事ありがとうございます。
たまたまPHP4.3.9の環境もあったので試してみましたが、こちらでは文字化けし
ませんでした。ちなみにApache1.3.33です。うーむ。
> 文字コード変換が行われていないという事ですね。
> どんな文字でテストしているか教えて頂けますか。
そうですね。
テストしている文字は「あいうえお」、「美乳」などばらばらです。
文字数が短すぎないように長めの文字を入力しても同じです。
以下1〜3まで変更をphp.iniへ加え、そのたびにApacheを再起動して
確認しましたが同じく文字化けしました。Apache2.2.3 + PHP5.2.0です。
1.mbstring.strict_detection = On を追加
2.mbstring.http_input = SJIS に変更
3.mbstring.detect_order = SJIS に変更
いずれにしてもformタグから enctype="multipart/form-data" を削除すると文
字化けはしません。なので文字コードの誤検知は考えにくいように思います。
> 誤検知で変な変換が行われてしまった時に、取り返しが
> つかなくなるので、自分は使わないようにしています。
> (プログラムで明示的に変換してから利用)
以前からメーリングリストでそのようなご指摘は見ていたのですが、やはりその
方が良さそうですね。PHP5.2.2-devでも私の環境では再現したので今後のことも
考えてプログラム内で変換する方向で進めたいと思います。
ありがとうございました。
P.S.
1点訂正させて下さい。
> 確かPHP4.2.3あたりまでは自力でエンコード処理はしなくてはいけなかった記憶
> はあるのですが
これはPHP4.3.2まででしたね。失礼しました。
http://jp.php.net/manual/ja/ref.mbstring.php
----------
中村
y-nakamura @ from.co.jp
PHP-users メーリングリストの案内