日本語URLへの移動
Perl、CGI初心者です。
HTMLのフォームの選択結果を元にURLを生成し、
そのURLへアクセスするプログラムを作成しています。
URLはPDFファイルやWordファイルになり、URL(ファイル名)には
日本語が含まれています。
print "Location: $URL\n\n";としてURLへ移動するプログラムを
作成したのですが、日本語処理がうまくいっていない(?)ようで
Not Foundとなってしまいます。
なお、NotFoundが表示された状態でブラウザ(IE6)の移動を押下すると
テキストとしてPDFやWordファイルを開きます。
#NotFoundの時点ではブラウザの文字コードがISOになっています。
$URL =~ tr/+/ /;
$URL =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack('C', hex($1) )/ge;
&jcode'convert( *value, 'sjis' );
と日本語処理はしています。
また、ファイルを開くのではなく、以下のようにリンクを貼った場合は、
リンク先は正しく開くことができます。
<a href="$URL" target="_blank">$URL<a><br>
原因、対策を教えて下さい。