[PHP-users 11218] $_GET[]で取得できるデータが化けるのですが・・・

keios php-users@php.gr.jp
Thu, 31 Oct 2002 10:40:18 +0900(JST)


ども井上です。

特定の文字列をmb_encode_mimeheaderして、送った場合、
$_GETで取得させると文字化けが起こり、
$_POSTで取得すると文字化けが起こらないという
変な動作に悩まされているのですが・・・
原因をお知りの方がおられましたら教えてください。

"城下 下"   OK
"城下 上"   NG "城下 ?"になる。 
"城下 上に" OK 

なおこの現象は、下記2つの環境で確認しました。

FreeBSD 4.6.2  Apache/1.3.26 (Unix) PHP/4.2.2
FreeBSD 4.7    Apache/1.3.27 (Unix) PHP/4.2.2

文字化けサンプル
**ここから************************************
<?
$sample = "城下 上";
$EncData = mb_encode_mimeheader($sample);
$DecData1 = mb_decode_mimeheader($EncData);
$DecData2 = mb_decode_mimeheader($_GET['a']);
$DecData3 = mb_decode_mimeheader($_POST['a']);

$contents = "Original_Data       " .$sample  ."<BR>".
			"Decode_Local_Data   " .$DecData1."<BR>".
			"Decode_GET_Data     " .$DecData2."<BR>".
			"Decode_POST_Data    " .$DecData3."<BR>";

print <<<__End_of_Script__
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=euc-jp">

<TITLE>test</TITLE>
</HEAD>
<BODY>

$contents
<BR>
<A href='./test.php?a={$EncData}'>GET</A><BR>
<FORM method ='POST' action = ''>
	<INPUT type = 'hidden'   name = 'a' value = '{$EncData}'>
	<INPUT type ='submit' name = 'damy' value = 'POST'>
</FORM>

<BR>
</BODY>
</HTML>
__End_of_Script__;
?>
**ここまで************************************

By Yoshihisa Inoue