[PHP-users 11235] Re: $_GET[]宕湘f[^姪栗EEE
Moriyoshi Koizumi
php-users@php.gr.jp
Thu, 31 Oct 2002 23:51:19 +0900
小泉です。
なぜ、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