• ベストアンサー

#を含むファイルの指定

ファイル名に#を含む画像ファイルを、imgタグで以下のように指定した場合、IE11ではXマークとなり、表示できません。 WinXP時代のIE8では正しく表示できました。 #は、ファイル名の禁則文字ではありませんが、HTMLの特殊文字になるのでしょうか? <html> <body> <p align="center"><img src="Desert#1.jpg"></p> </body> </html>

質問者が選んだベストアンサー

  • ベストアンサー
  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.3

>最近、Windows7へ上げ、同じHTMLをIE11で開いたところ、#つきの画像が表示できなくなった次第です。  だとしたら、その動作が正常です。  #は本来ブラウザがサーバーに要求してはならない文字です。 よって、URLエンコードしなければなりません。 <p align="center"><img src="Desert%231.jpg"></p>

MusaGoro
質問者

お礼

再度の回答、ありがとうございます。 IEが、HTMLの仕様に厳格になったということでしょうか。 URLエンコードし記述すれば、希望の動作をすることを確認しました。 HTML生成プログラムを改修するようにします。

すると、全ての回答が全文表示されます。

その他の回答 (2)

回答No.2

"hoge.html" がもしも、こんなだったら? <a name=title></a> <a href=hoge.html#menu>メニューへ</a> 長めのHTML表示(タイトル部分)大き目の絵でも張ってください。 <a name=menu></a> <a href=hoge.html#title>タイトルへ</a> 長めのHTML表示(メニュー部分)大き目の絵でも張ってください。 という書式が出来ます。 しかし、#以降はもともとサーバーに送っていないので、 ブラウザは、同一URLなので、リクエストすることなく、 いきなり、開いているページ内の該当場所にジャンプします。 っていう書式で、HTMLでは使用されているので、 ファイル名に使うには適切ではなかったりします。

MusaGoro
質問者

お礼

回答ありがとうございます。 ページ内のリンクでは、#を使用することは知っておりましたが、サーバには送信していないという仕組みまでは理解しておりませんでした。

すると、全ての回答が全文表示されます。
  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.1

#は2.1.2 部分識別子( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/intro/intro.html#h-2.1.2 )です。  #以降はサーバーには送られません。ブラウザが保持して、該当のファイルが届いてからid,name属性を探します。 >WinXP時代のIE8では正しく表示できました。  それはないはずです。ローカルでは、file:///--ファイラーを使用しますが、少なくともHTTPプロトコルなどネットワーク経由では以前からダメだったはずです。

MusaGoro
質問者

お礼

早々にご回答頂き、ありがとうございます。 >> WinXP時代のIE8では正しく表示できました。 > それはないはずです。ローカルでは、file:///--ファイラーを使用しますが、少なくともHTTPプロトコルなどネットワーク経由では以前からダメだったはずです。 説明不足でしたが、今回はWebサーバは使用しておりません。 ローカルPC内の画像を表示するHTMLを、プログラムで自動生成しております。 プログラムは、VB6で作成し、WinXPで稼働しておりました。 最近、Windows7へ上げ、同じHTMLをIE11で開いたところ、#つきの画像が表示できなくなった次第です。

すると、全ての回答が全文表示されます。

関連するQ&A