CGI-BBS > 基礎 > jcode/jcode.pl > &ReadParseで読む日本語


カレッヂ
カレッヂ


質問者 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裏技