[PHP-users 31419] Re: PHP5.2.0でmultipart/form-dataを使用すると文字化け

Seiji Masugata s.masugata @ digicom.dnp.co.jp
2007年 2月 7日 (水) 14:19:22 JST


こんにちわ、桝形です。

> <?= mb_convert_encoding($_POST['string'], 'EUC-JP', 'SJIS'); ?>
> 
> と自力でエンコードするとちゃんと表示されます。
> 
> 
> いくつかApacheとの組合せで試してみました。

色々と確認ありがとうございます。

文字コード変換が行われていないという事ですね。
どんな文字でテストしているか教えて頂けますか。


> output_buffering = On
> output_handler = mb_output_handler
> magic_quotes_gpc = Off
> default_charset = Shift_JIS
> mbstring.language = Japanese
> mbstring.internal_encoding = EUC-JP
> mbstring.http_input = auto
> mbstring.http_output = SJIS
> mbstring.encoding_translation = On
> mbstring.detect_order = auto
> mbstring.substitute_character = none;
> mbstring.func_overload = 0

この設定ですが、

> mbstring.http_input = auto

入力の文字コードを自動検出する設定なので、誤検知の
可能性もあり得ます。まずは、

mbstring.strict_detection = On

としてみてはいかがでしょうか。

http://itpro.nikkeibp.co.jp/article/COLUMN/20060117/227354/

後は、autoになっている部分を明示的に指定するか。


> 他にレスも無いようなのでみなさんのところでは問題が無いのでしょうかね。

自動変換の機能は使っていない人が多いのかもしれません。

誤検知で変な変換が行われてしまった時に、取り返しが
つかなくなるので、自分は使わないようにしています。
(プログラムで明示的に変換してから利用)

-- 
Seiji Masugata <s.masugata @ digicom.dnp.co.jp>



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