[PHP-users 12958] POST での文字化け

php-users@php.gr.jp php-users@php.gr.jp
4 Feb 2003 12:28:00 +0900


はじめまして。

どうしてもうまくいかないのでお知恵を拝借できればと思い記載
させていただきました。

通常のPOSTでフォームを作成しているのですが、
ある特定の文字の時の文字化けしてしまいます。
test.php〜test2.phpへのPOSTの処理の際にうまくいきません。
たとえば
%66と入力してPOSTしますとfと表示されてしまいます。
++入力してPOSTしますと何も表示されません。
B%55と入力してPOSTしますとBU表示されてしまいます。

%と+を使用しているときに起こるのですが、なぜでしょうか?
ご教授いただけると幸いです。

下記がソースになります。
--------test.php---------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=euc-jp">
<TITLE></TITLE>
</HEAD>
<BODY>
<FORM action =test2.php method="post">
<INPUT size="20" type="text" name="a"><BR>
<INPUT type="submit" name="ok" value="ok"></FORM>
</BODY>
</HTML>
-------test2.php----------
<?
$a=htmlspecialchars(trim($_POST["a"]));
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=euc-jp">
<TITLE></TITLE>
</HEAD>
<BODY>
<?
print"$a";
?>
</body>
</html>

-----------------

--環境--
FreeBSD 4.6.2-RELEASE 
PHP Version 4.2.3
Apache/1.3.27 
----------