![]() |
カレッヂ |
質問者 capsule460
投稿日 1/10(木) 23:03:43
いつも大変お世話になっております。 今回フリーワードで検索した結果をリスト表示するプログラムを作ったのですが、 日本語のデータ渡しで悩んでおります。 フリーワードが日本語の場合、(たとえば「あいうえお」)でデータを渡した場合、 URLエンコードされて、 list.cgi?freeword=%A4%A2%A4%A4%A4%A6%A4%A8%A4%AA となります。 これを&ReadParseで読むと正常に検索結果が得られます。 しかし、このプログラムにソート機能をつけまして、このデータを引き継いだまま並び替えをしようと、値を直接ゲット渡しすると list.cgi?freeword=あいうえお&sorttype=1 のようになってしまい、「検索結果なし」となってしまうのです。 ここではどのような日本語処理をするべきなのでしょうか。 なにかご教示いただければ幸いです。 どうぞよろしくお願いいたします。 |
回答者 しあわせのツボ
[削除]
投稿日 1/11(金) 01:07:12
getで渡す前に再度エンコードすればいいのでは? |
質問者 capsule460
[削除]
投稿日 1/11(金) 11:00:39
早速のお返事ありがとうございます。 そうなんですよねぇ。 それをやろうと思っていたのですが、 アスキーコードからの変換はよくのっているにもかかわらず、 逆パターンを調べても調べても見つからないのです。 もし、よろしければアスキーコードへの変換の 仕方をお教えいただけないでしょうか。 最後の頼みでこちらにこさせていただいた次第です。 どうぞよろしくお願いいたします。 |
質問者 capsule460
[削除]
投稿日 1/11(金) 16:44:01
しあわせのツボさん ありがとうございました。 わかりました。 $freeword =~ s/(\W)/'%'.unpack("H2", $1)/ego; とすればいいようです。 お手数おかけしました。 ふぅ、これですっきりです。 |
このページは終了したので返信(回答)は書きこめません
Web裏技 |