• 締切済み

perlで、日本語を含むURL(勿論、エンコード)のページ作成を考えて

perlで、日本語を含むURL(勿論、エンコード)のページ作成を考えています。 が、ファイルの作成まではうまくいくのですが、いざ、そのURLにアクセスすると 「not found」になってしまいます。 (FTPでのぞくと、確かに、そのファイルは存在するのに、 そのURLにブラウザーからアクセスすると「not found」になってしまいます) そこで、以下の様な小さな実験をしてみました。 <実験> %A3.html という名前のファイルを手動で作り、それをFTPでアップしたところ、 FTP上では「%A3.html」ではなく、「%25A3.html」と表示されました。 そして、 http://nantoka.com/%A3.html http://nantoka.com/%25A3.html 両方にアクセスしたのですが(nantokaの部分は架空のものです)、やはり両者とも「not found」になってしまいます。 ●なぜ、この様な現象が起るのでしょうか? ●どの様にすれば、この問題は解決するのでしょうか? 教えていただければ幸いです。 ちなみに、perlの中では、以下の様な処理をしています。 ---------------------------------------- # キーワードは、UTF-8エンコードサイトから引っ張ってきます。 $keyword="キーワード"; #URLエンコード use URI::Escape; $keyword = uri_escape($keyword); $pageurl ="p/$keyword?.html"; $body ="サイトの中身"; open( FH, '>',$pageurl); print FH "$body"; close( FH ); ---------------------------------------- これで、 http://nantoka.com/p/$keyword.html (例えば、http://nantoka.com/p/%8F%AC%91%F2%88%EA%98Y.html等にアクセスした時に、 ちゃんと表示させたいのです。今現在も、FPTで見ると、当該ディレクトリーに「%8F%AC%91%F2%88%EA%98Y.html」は 存在しているのですが、ブラウザーでアクセスすると「not found」になってしまいます。

みんなの回答

  • kuroizell
  • ベストアンサー率55% (95/170)
回答No.2

おおっと、すみません、モジュール使った場合は同じですね。 ファイル名は日本語のまま、"」.txt"でUPしてみて下さい。 %81v%2etxt、または、%81v.txtでアクセスできると思います。

keeeeeeen
質問者

お礼

>.txt"でUPしてみて下さい。 アドバイスいただき、ありがとうございます! ただ「.html」ではないと、ホームページとして表示されないので、「.html」でアクセス可能な方法を探っている最中です。 その後、予想以上に裏側で複雑?な事が行われている事が原因らしい事が分かりました。。。 http://q.hatena.ne.jp/1178933983

  • kuroizell
  • ベストアンサー率55% (95/170)
回答No.1

"」"のエンコード .= ".txt"と "」.txt"をエンコードしたものは別物ですよ。