CGI-BBS > CGI > Perl > テキストボックスから全角文字を受け取りたいんですが…


カレッヂ
カレッヂ


質問者 くろん  投稿日 4/28(土) 01:22:37
はじめまして、こんにちは。
現在freewebでPerlでCGIを作っているのですが、
題名の通りフォームのテキストボックスから全角文字を受け取れずに困っております。
一部コードをお見せしますと、

print "<FORM METHOD=POST ACTION=afe3.cgi>";

・一部省略

print "<INPUT TYPE=TEXT SIZE=25 MAXLENGTH=30 NAME=newelem>";

こんな感じです。フォームタグで示す通り、全角文字をafe3.cgiを受け取りたいんですが、
実行すると、

%82%E0%82%AF%82%AF%82%AF%82%AF%81%5B

↑のように化けてしまいます。
大雑把な質問で申し訳ないんですが、もしよろしければ解決法を教えてください。
回答者 アンジェラ  [削除]  投稿日 4/28(土) 20:15:36
文字化けしてる訳じゃなくて、URLエンコードされてるだけです。
デコードすればちゃんと元にもどります。

具体的には、afe3.cgi に
$postline =~ tr/+/ /;
$postline =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
のような処理が必要ということです。
質問者 くろん  [削除]  投稿日 4/29(日) 05:46:12
ありがとうございます。
早速試してますね(^^

このページは終了したので返信(回答)は書きこめません

Web裏技