[PHP-users 16943]Re: $_POST文字コード
Seiji Masugata
s.masugata @ digicom.dnp.co.jp
2003年 7月 24日 (木) 22:21:17 JST
こんばんわ、桝形です。
> <FORM METHOD = POST>を使ってフォームのデータを送ると、
> 変数$_POSTはすべて内部コードのUTF-8になってくれるのですが、
> <FORM ENCTYPE ="multipart/form-data" METHOD = POST>
> を使ってフォームのデータを送ると、
> $_POST変数がSJISのまま取得されてしまいます。
> multipartの設定をした状態でもUTF-8で渡されるようにするには、
> どのような設定をしたらよいのでしょうか?
これは現状の仕様なので、設定では無理だと思います。
http://www.php.net/mbstring
HTMLフォームでenctype が multipart/form-data に設定された場合、
mbstringはPOSTデータの文字エンコーディングを 変換しません。
ユーザは、変換に応じてスクリプト内で変換を行う必要があります。
http://www.php.net/mb_convert_variables
で、えいやっとやるのが一番楽かもしれません。
もしくは、入力フォーム自体をUTF-8で作成して送信してみるとか。
--
Seiji Masugata<s.masugata @ digicom.dnp.co.jp>
PHP-users メーリングリストの案内