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

Sumito_Oda php-users@php.gr.jp
Sun, 10 Nov 2002 02:06:17 +0900


織田です

>> QUERY_STRING:var=%cb にならなければおかしいですね。
>> 25 という文字が入るのはなんでしょう?。4.2.3 のバグ?。
>> PHP 4.2.1 ならば、ちゃんと %cb になって、$_GET['var']
>> 即ち urldecode($_SERVER['QUERY_STRING'])は、当然のこと
>> ながら、文字化けします。
>
>PHP 4.1.2 で試してみましたが、GET['var']:%cb となります。
>まったく同じスクリプトを動かした結果なので、
>やはり、PHP 4.2.3 のバグのような気がしますが…

実は私も、最初の投稿の上の動作は理解できたのですが、下の動作がどうも
不可解に思ってました。下の例だとurlencodeされているので(頭の中の動作では)
上手く値が取れる筈なんですよね。で、手元のWindows版PHP4.2.3で再試して
みたのですが、そこでは思っている通りの動作をして、再現しなかったので
個別の環境の問題ではないのかと思って、漢字コードの再確認を促してみました。

私は"output_handler = mb_output_handler"は使ってなく、以前PHP4.2.3のGET/POST
関係のバグの部分は正常に動いてましたので、今回はhandlerの設定と漢字コード
関係を変えて試してみましたが再現しませんでした。他の方はどうでしょうか。

あとブラウザのURL入力欄に直接"test1.php?var=%25cb"を指定してコールしても
同じ現象が出ますでしょうか。
-- 
織田 澄人(Sumito Oda) / mailto:oda@imasy.or.jp