- ベストアンサー
Apacheの日本語名ファイルリンク
質問させていただきます。本来であれば他のところで質問すべきなのでしょうが、リファレンスが英語だったり、似たような症状はあってもピンポイントでは無かったりしたのでお願いします。 Apache2.0.54をインストールし実行しました。index.htmlも書き換え、いざ公開と行こうと思った矢先、日本語リンクがあると、どうも文字化けしてしまうようで、何回やってもForbiddenになってしまいます。 今のところPerlなどはいれず、純粋のHTTPDとして動作していますが、どのようにすればよいでしょうか?英語ファイル名リンクであれば通るのですが、よろしくお願いいたします。m(_ _)m
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
文字コードの関係で、ご自身の環境では日本語ファイルを読み出せても、そのコンテンツを参照する任意の方々の環境では読み出せない場合が十分想定されると思いますので、「ファイル名に日本語を使わない」「日本語を使っているファイル名はアルファベットに書き換え、リンクを張りなおす」が結果として現実的な解になるのではないでしょうか。 日本語のファイル名は、実際にはあるルールにしたがってアルファベットに変換されてコンピュータ上で処理されていますが、その変換ルールが複数存在しています。 Webサーバ上にあるファイルが EUC による日本語ファイル名になっていたとして、ブラウザ側の処理がデフォルトで SJIS とかであれば、別物のファイルであると処理されてしまいます。こういう場合はブラウザ側で EUC にあわせてあげれば読み出せる場合もあるとは思いますが、コンテンツを参照してもらう任意の方にその手間を求めるのもいかがなものかと思うわけです。 http://www.kanzaki.com/docs/jcode.html http://euc.jp/i18n/charcode.ja.html http://e-words.jp/w/E69687E5AD97E382B3E383BCE38389.html
その他の回答 (1)
ぶっちゃけ、インターネットでは世界的な標準として 日本語や中国語などの2bytes文字での表記を認めていません。 一部で日本語のドメイン名の計画が進められたり ウェブブラウザーとローカルのファイルブラウザーの統合で 日本語ファイル名を扱えるブラウザーはありますが ウェブサーバーとしては、日本語名を通さないのが普通です。 ちなみに、減って来てはいるけど、英語圏で設計されたOSでは 日本語ファイル名のファイルが存在するだけで chkdsk等が誤動作するようなトラブルもある。
お礼
ファイルがあるだけで誤動作とは、偉く迷惑な話ですね。欧米製では2byteというのが非常に扱いにくいのでしょうが、日本人には、やはり日本語がしっくり来る場面も多いと思うので、もっと調べてみようと思います。 貴重なご意見有難うございました。
補足
みなさんありがとうございました。さらに調べた結果、Apache2用の「mod_encording」というモジュールを入れたら解決することができました。しかし、みなさんのご意見が間接的に大変役に立ちました。 これを参考にする人のために参考ページを。 http://webdav.todo.gr.jp/download/ ありがとうございましたm(_ _)m
お礼
なるほど。Webにアクセスをするのに、文字コードが大きな障壁なのですね。その後調べてみてすごく参考になりました。ありがとうございました。 確かに読み出すほうに労力を求めすぎるのもよくない(アクセシビリティ)と思いますが、一方で最新の技術を使っていったり、直感的に分かりやすいページを作っていくのも大切だと思っています。 ご回答感謝いたします。