[PHP-users 31403] PHP5.2.0でmultipart/form-dataを使用すると文字化け
nakamura @ from.co.jp
nakamura @ from.co.jp
2007年 2月 6日 (火) 14:00:55 JST
たびたびお世話になります。
中村です。
過去ログを検索してみたところ該当がなかったので、質問させて下さい。
既出でしたらすみません。
PHP5.2.0でformタグにenctype="multipart/form-data"を
指定するとPOSTしたマルチバイト文字が文字化けします。
指定しなければ文字化けしません。
確かPHP4.2.3あたりまでは自力でエンコード処理はしなくてはいけなかった記憶
はあるのですが、5.2.0も自力でエンコードしないといけなくなったのでしょうか。
ちなみにPHP5.1.6ではエンコード処理しなくても大丈夫でした。
検証ソース
----------------------
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
</head>
<body>
<?= $_POST['string'] ?>
<form method="post" enctype="multipart/form-data">
<input type="text" name="string">
<input type="submit" value="OK">
</form>
</body>
</html>
----------------------
環境
CentOS4.4
Apache2.2.3
PHP5.2.0
./configure --with-pgsql --with-apxs2=/usr/local/apache2/bin/apxs \
--enable-zend-multibyte --enable-mbstring --with-gd \
--with-zlib-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr \
--with-freetype-dir=/usr --with-ttf --enable-gd-native-ttf \
--enable-gd-jis-conv --enable-sockets --enable-simplexml --with-curl
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
----------
中村
y-nakamura @ from.co.jp
PHP-users メーリングリストの案内