[PHP-users 11384] GETメソッドで半角アルファベットが文字化け

Shinich Moritani php-users@php.gr.jp
Sat, 09 Nov 2002 01:48:24 +0900


森谷です。

GETメソッドで、半角英字を送ったときになぜか文字化けしてしまいます。
これって、PHPのバグなのでしょうか?
ご存知の方がいらっしゃいましたら、回避策をご教授ください。
過去ログなども調べましたが、2バイト文字についてしか見つかりません
でした。

送信側スクリプト
<?
$var ="%cb";
echo "<a href=test1.php?var=$var>var</a>";
?>

受信側スクリプト
<?
echo "QUERY_STRING:".$_SERVER['QUERY_STRING']."<br>\n";
echo "GET['var']:".$_GET['var']."<br>\n";
?>

表示結果
QUERY_STRING:var=%25cb
GET['var']:ヒ

送信側スクリプトを
<?
$var ="%cb";
$var = urlencode($var);
echo "<a href=test1.php?var=$var>var</a>";
?>
にすると。

表示結果
QUERY_STRING:var=%cb
GET['var']:ヒ

となりました。

環境は
RedHat7.2
Apache1.3.22
PHP4.2.3
です。(レンタルサーバです)

ちなみに、configuer は以下のようになっています。
./configure --prefix=/usr/local --with-mysql=/usr/local/mysql
 --enable-mbstr-enc-trans --enable-mbstring --enable-track-vars
 --with-apxs=/usr/sbin/apxs --enable-mbregex

クライアントは、NN4.75 です。
IE6.02 でも文字化けします。


*****************
Shinichi Moritani
*****************