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

Moriyoshi Koizumi php-users@php.gr.jp
2002年10月31日 23:53:41 +0900


小泉です。
# すみません。また SJIS で送ってしまいました...
なぜ、mime エンコードした文字列をクエリーとして渡したいのか
わかりませんけれども、
mime エンコードした文字列には"?" や "=" が必ず
含まれますので、url エンコードしなくてはならないはずなのですが、
URL にクエリーとして書く際にちゃんとエンコードしていますか?
そうしないと文字が化けるのは当たり前です。
なお、FORM の中に書く分には問題ないはずです。
keios <bok@bbsbrain.ne.jp> wrote:
> ども井上です。
>> 特定の文字列を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
> _______________________________________________
> PHP-users mailing list
> PHP-users@php.gr.jp
> http://ns1.php.gr.jp/mailman/listinfo/php-users


AltStyle によって変換されたページ (->オリジナル) /