- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:日本語URLへの移動)
日本語URLへの移動について
このQ&Aのポイント
- Perl、CGI初心者の方がHTMLのフォームの選択結果を元にURLを生成し、日本語URLへアクセスするプログラムを作成していますが、日本語処理がうまくできずにNot Foundとなってしまう問題が発生しています。
- URLに含まれる日本語の文字処理に関して、変換や変換後の文字列の扱いに問題がある可能性があります。
- ファイルを開くのではなくリンクを貼る場合は正常に開くことができているため、処理方法の見直しやURLのエンコーディングなどを検討する必要があります。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
今回の場合、URLエンコードが必要となります。 行っている処理は、URLデコードなので、逆です。 また、&jcode'convert(*value, 'sjis') は、 “$value”の文字コードを sjis に変換するので誤りです。 仮に、&jcode'convert(*URL, 'sjis') としても、 URLエンコードを行う前にSJISに変換する必要があります。 # 古臭いですが &jcode'convert(*URL, 'sjis'); $URL =~ s/(\W)/'%'.unpack("H2", $1)/ego; print "Location: $URL\n\n"; # どうでしょう?
お礼
回答ありがとうございます。 解決しました。(SJISではだめでUTF8にしましたが) 参考になりました。ありがとうございます。