perlのCGIで
require './jcode.pl';

<A HREF=\"./****.cgi?mode=res_albam&name=$fname\">
レンタルサーバーの時は半角、全角もOKでしたが、
自宅サーバーでは
$fnameに半角文字の時はOKですが全角文字が入っている時
nameに渡しリンク先で文字ばけします、
どうすれば良いですか、よろしくお願いします

このQ&Aに関連する最新のQ&A

A 回答 (1件)

非USASCII文字を生でURLに入れてうまくいく方が、むしろ少数派でしょう。



まず、非USASCII文字を含む(かもしれない)場合は、CGI::escape() しましょう。

文字コードとして SJIS が良いか UTF-8 が良いかはOSやWebサーバーの種類や設定により異ります。 私の経験では、CentOS5 + Apache2 では UTF-8 で、WinXP + Apache2(Cygwin) では Windows-31J でした。

さらに、CGI.pm はバージョンによって Encode 絡みの使用法が変る様です。


超えるべき壁が多いかも知れませんが、頑張ってみてください。

# ディレクトリやファイルの名前はUSASCIIでという選択肢があるなら、ベストだと思いますが。
    • good
    • 0
この回答へのお礼

回答ありがとうございます、
下記のコードで出来ました。
$fname =~ s/(\W)/sprintf("%%%02X", ord($1))/ego;

お礼日時:2009/05/23 22:11

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング