[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