$cgi->param('search_string');
Perlスクリプトでurlパラメータを取得するために使用しますが、取得する前に値が関数$cgi->param
を介して渡されていると思われます。uri_unescape()
例:
- フォームには
search_string=ЛИКЕР ВИШНЕВЫЙ
- URLには
search_string=%41B%418%41A%415%420+%412%418%428%41D%415%412%42B%419
- しかし、私が単純にデコードできたのではなく、
$cgi->param('search_string')
リターン。ABA8AAA5B0+A2A8B8ADA5A2BBA9
%41B%418%41A%415%420+%412%418%428%41D%415%412%42B%419
これが私のコードで実際に行われていることです:
この「ПЛЕНКАПИЩЕВАЯ」を$search_stringとして渡します。
$search_string =~ s/\s/+/g;
$search_string =~ s/\#/\%23/g;
$search_string =~ s/[^A-Za-z0-9\+\*\.\@\_\-]/uc sprintf("%%%02x",ord($&))/egx;
それから私はこれsearch_string=%41F%41B%415%41D%41A%410+%41F%418%429%415%412%410%42F
をURL自体で取得します。
次に$cgi->param('search_string')
、もう一方の端でその値を取得するために使用すると、これを取得します"AFABA5ADAAA0 AFA8B9A5A2A0BF"
。ここでの追加の問題は、$ cgi-> param('search_string')が自動的にuri_unescape()を呼び出すように見えることです。そのため、。を取得し"AFABA5ADAAA0 AFA8B9A5A2A0BF"
ます。
最終結果が次のように返されるようにするにはどうすればよい"ПЛЕНКА ПИЩЕВАЯ"
ですか?