![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
これからWebサイトを構築しようと考えており、その際に日本語が混じったURL構造にしたいわけです。みなさんどのように実装されているのでしょうか?
世の中を見渡すと下記のように日本語が混じっているケースがあるので不可能ではないのだろうと思います。
http://ja.wikipedia.org/wiki/自動車
http://www.amazon.co.jp/図解雑学 自動車のしくみ/dp/4816332383/ref=sr_1_9/250-1917324-0329026?ie=UTF8&s=books&qid=1178706552&sr=1-9
A 回答 (6件)
- 最新から表示
- 回答順に表示
No.6
- 回答日時:
> 拡張子をつけたURL「
http://127.0.0.1/%E8%87%AA%E5%8B%95%E8%BB%8A.html の場合はWebサーバはきちんと認識してくれる筈だと思いますが、> こちらも表示されないようです。あと一歩というところですが、何かが引っ掛かって表示されていないです。
今試せる環境(Windows XP SP2 上の AN HTTPD 1.42p)で試したところ、
・ファイル"%E8%87%AA%E5%8B%95%E8%BB%8A"にアクセスするには、
%を%25にURLエンコード(URLエスケープ)して"%25E8%2587%25AA%25E5%258B%2595%25E8%25BB%258A"とする必要があった。
・ファイル"自動車"には、"自動車"を文字コードUTF-8でURLエンコードした
"%E8%87%AA%E5%8B%95%E8%BB%8A"でアクセスできた。
という結果になりました。
(少なくともAN HTTPDでは、)リクエストURLはURLエスケープされたものとして扱われるようです。
ファイル"自動車"には、"自動車"でもアクセスできましたが、
"自動車"でも"%E8%87%AA%E5%8B%95%E8%BB%8A"でも、ブラウザ(IE6)がWebサーバに送るリクエストは、
GET /%E8%87%AA%E5%8B%95%E8%BB%8A
で同じでした。(ブラウザが自動的にURLエンコードしているため。)
しかし、IEの設定で「常にUTF8としてURLを送信する」が有効になっていないと
必ずしもUTF-8でURLエンコードされないかもしれません。
また、他のブラウザで同じようにURLエンコードされるかどうかは分かりません。
さらに、サーバ環境によってはUTF-8以外でエンコードする必要があるかもしれません。
これらの事情が、ANo.1~3でURLエンコードしたファイル名を使うのが望ましいと言われている理由ですね。
ただURLエンコードするにしても、日本語ファイル名はできるだけ使用を避けた方がよいと思います。
wikiのようにphpなどのパラメータとなっているなら
同じphpプログラムを使っている限り期待通りに処理してくれるでしょうけど、
ファイル名だとそれを処理するのはWebサーバなので、
Webサーバを変えるとUTF-8でエンコードしたファイル名ではアクセスできなくなるということが起こるかもしれません。
(これに関してはサーバの設定次第でどうにかなりそうではありますが。)
また、サーバを通さずにローカルHTMLファイルをブラウザで開くとき、
使っているブラウザと文字コードによってはURLエンコード後のファイル名でファイルを開けないようです。
その結果、リンクが切れてしまうのでチェックするときに不便かもしれません。
そもそも、リンクするためにURLエンコードしなければいけないというのも面倒な話で、
これだけでも十分なデメリットな気がします。
もし、どうしても日本語ファイル名を使いたいのであれば
よく下調べはしておいた方がよいと思います。
私は日本語ファイル名を使ったことも使おうとしたこともないわけで、
まだ他にも私が知らない問題があるかもしれないので。
なお、使う文字コードはUTF-8が一番無難そうでした。
No.5
- 回答日時:
> URL「
http://127.0.0.1/%E8%87%AA%E5%8B%95%E8%BB%8A 」で表示してくれることを期待していたのですが、結果は×です。拡張子を消すと、そのファイルがhtmlであるという情報をWebサーバーが送信しなくなり、
ブラウザがhtmlと見なさずに表示しなくなることはあり得ます。
(具体的には、Webサーバーから送られてくるhttpヘッダのContent-Typeがtext/htmlになっていない。)
ApacheならDefaultType、
AN HTTPDならデフォルトMIMEタイプの設定で、
拡張子無しファイルのContent-Typeを変えられます。
http://www.st.rim.or.jp/~nakata/httpd-docs/optio …
余談ですが、URLから拡張子を消したいなら、
MultiViewsやmod_rewriteなどを使う方法もあります。
この回答への補足
参考になります。
拡張子をつけたURL「 http://127.0.0.1/%E8%87%AA%E5%8B%95%E8%BB%8A.html」の場合はWebサーバはきちんと認識してくれる筈だと思いますが、こちらも表示されないようです。あと一歩というところですが、何かが引っ掛かって表示されていないです。
No.4
- 回答日時:
> 実際のファイル名はどうなっているのでしょうか
素直に、"%E8%87%AA%E5%8B%95%E8%BB%8A"というファイルがあるという考えは無し?
(ファイル名に拡張子は必須ではないので無くてもおかしくはないよ。)
まあ、実際にはその部分はphpに渡される引数で、ファイル自体は存在しないと思います。
http://ja.wikipedia.org/w/index.php?title=%E8%87 …
この回答への補足
なるほど、wikipediaはパラメータ渡しだったのですね。この部分は疑問氷解です。
>ファイル名に拡張子は必須ではないので無くてもおかしくはないよ。
おっしゃるとおりなので自分の方でも愚直にこのページのソースをコピって「%E8%87%AA%E5%8B%95%E8%BB%8A」および「%E8%87%AA%E5%8B%95%E8%BB%8A.htm」というファイルを作ってみました。
URL「http://127.0.0.1/%E8%87%AA%E5%8B%95%E8%BB%8A」で表示してくれることを期待していたのですが、結果は×です。
No.3
- 回答日時:
>ありがとうございます。
だとすると例に書いたようなamazonやwikipedeaは、一部のユーザを切り捨てていることになってしまうのでしょうか?amazonやwikipediaの中には日本語のリンクは無いと思いますが?どこかにありましたか?
リンクを紹介するときに、http://ja.wikipedia.org/wiki/自動車 のように書いた人が切り捨てているわけです。悪いのはその人です。
http://ja.wikipedia.org/wiki/%E8%87%AA%E5%8B%95% … のように書くのが正しいです。これならどんなブラウザでも大丈夫。
この回答への補足
早速ありがとうございます。エンコードしたファイル名であれば良いということですね。ところで
http://ja.wikipedia.org/wiki/%E8%87%AA%E5%8B%95% …
の場合、実際のファイル名はどうなっているのでしょうか?試したところでは下記のいずれでもありませんね。
http://ja.wikipedia.org/wiki/%E8%87%AA%E5%8B%95% …
http://ja.wikipedia.org/wiki/%E8%87%AA%E5%8B%95% …
http://ja.wikipedia.org/wiki/%E8%87%AA%E5%8B%95% …
http://ja.wikipedia.org/wiki/%E8%87%AA%E5%8B%95% …
http://ja.wikipedia.org/wiki/%E8%87%AA%E5%8B%95% …
No.2
- 回答日時:
簡単に言うと、ブラウザが日本語を自動的に%と16進数の文字列に変換してサーバーに送信します。
サーバー側では、送られてきた %E3%82%A8 のような文字列を日本語に再変換して目的のページを探すわけです。ただ日本語の文字コード体系は複数あって、ブラウザがどの文字コードを使って送信するかはわからないので、通常ありえるすべてのケースに対応する必要があります。IEだけ対応するというとかなら絞れると思いますが。
またブラウザによってはそもそも日本語に対応していないものも考えられ、そういうブラウザのユーザーは切り捨てることになります。
この回答への補足
ありがとうございます。だとすると例に書いたようなamazonやwikipedeaは、一部のユーザを切り捨てていることになってしまうのでしょうか?
補足日時:2007/05/09 21:37No.1
- 回答日時:
日本語の可否はサーバソフトとクライアントの組み合わせによります。サーバ側ではクライアントを指定できませんから、サーバ側で対応する必要があります。
2バイト文字を含んでも良いように、URLエンコードを用いて文字コードに置き換えるのが一般的では。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- BTOパソコン DELL PC。マザーボード交換について。 10 2023/01/23 18:38
- 英語 ”be”<動詞>と<助動詞>混同の誤り ― 形式主義文法論の混迷 12 2022/05/17 11:09
- 日本語 〈場所を示す「に」と「で」〉 という誤り 36 2022/11/12 15:04
- サバイバルゲーム このタイプの差し込み口ってなんの種類か分かりますか? 3 2022/07/29 15:32
- ZOZOTOWN このタイプの差し込み口ってなんの種類か分かりますか? 2 2022/07/29 15:31
- デジタルカメラ カメラ Nikon FレンズにZマウントボディ 5 2023/01/10 01:43
- docomo(ドコモ) SIMフリー機種への乗り換えについて 7 2022/09/01 14:05
- 会社・職場 技能実習生 仕事はあんまり出来ないけど日本語ペラペラのベトナム人か 仕事が早くて即戦力だけど日本語が 2 2022/06/01 21:21
- 伝統文化・伝統行事 韓国語の翻訳をお願い申し上げます 1 2022/07/08 09:33
- その他(コンピューター・テクノロジー) USB4 Version 1.0の最大伝送距離は80cmと以下のリンクのwikiのUSBの各世代の所 1 2023/07/15 23:06
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
HTMLからフォルダを開きたい
-
iPadの標準ブラウザでローカルH...
-
、URL化させるにはどうしたらい...
-
スマホサイト url SP
-
htmlの中にexcelが埋め込むには...
-
コマンドプロンプトでパラメー...
-
外部ファイルに関数を置いて、...
-
<a href=…></a>で表示されない。
-
htmlの謎
-
メールに添付されたhtmlファイ...
-
input type="file"のmaxlength...
-
社内で利用するWebサイトを立ち...
-
html からリンクされていないフ...
-
インクルードはPHP?SSI?
-
Excelで、社外秘(閲覧のみ)と...
-
Webサイトから、txtファイルを...
-
googleドライブで、PDFファイル...
-
医療画像(Windows用)をMacで...
-
HTMLページが勝手にダウンロー...
-
htmlファイルの表示が真っ白
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
HTMLからフォルダを開きたい
-
iPadの標準ブラウザでローカルH...
-
htmlの中にexcelが埋め込むには...
-
社内で利用するWebサイトを立ち...
-
HTMLで別PCのフォルダを開く
-
htmlの謎
-
htmlにtextファイルを表示させ...
-
<a href=…></a>で表示されない。
-
メールに添付されたhtmlファイ...
-
JSPの中にhtmlファイルを埋め込...
-
C# ローカルにあるhtmlの相対...
-
input type="file"のmaxlength...
-
一つのhtmlファイルでページを...
-
、URL化させるにはどうしたらい...
-
HTMLの<a href="xxx.html">~</...
-
ssi を使わないのに .html を ....
-
コマンドプロンプトでパラメー...
-
テクトロ オシロ 拡張子 ISFフ...
-
スマホサイト url SP
-
MIMEタイプってなぜあるんですか?
おすすめ情報