[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 メーリングリストの案内