プロが教える店舗&オフィスのセキュリティ対策術

宜しくお願いします。
[質問]
 文字コード指定のないWebページ表示に文字化けするのはHTML
 ファイルのせいかブラウザ(IE)のせいか?

 Shift-JISで文字コード指定を明示的にしてないHTMLファイル
 をIEで表示するとタイトルバーやページ上の日本語文字が文字
 化けすることがありますが、これは文字コードの指定をソース
 コードで行ってないHTMLファイルのせいなのか・それともIEが
 誤動作したせいなのか?
 どちらのせいかご存じの方いたら教えてください。

 また、文字コード指定がないHTMLファイルで文字化けする時、
 なぜ普段使用してない文字コードでHTMLファイルを読み込もう
 とブラウザがするのかご存知の方いたら教えてください。
 (テキストファイルだと文字コード指定して保存できますが、
 HTMLファイルは文字コード指定して保存できないと思うので、
 通常Shift-JIS選択してページ閲覧している環境でわざわざ他
 の文字コードで読み込もうとするのか疑問です。)

A 回答 (6件)

HTMLファイル作成のアプリケーションとはHTMLエディタやテキストエディタのようなものですよね?


.html、.htm、両方とも文字コードを選択できるものがありますよ。
最近のフリーのソフトでもEUC-JP、UTF-8、JIS、Shift-JIS、Unicodeは選べますよ。

それ以降の説明は成り立つと思いますよ。
ご存知かも知れませんが念のために文字コードについて詳しく解説されているページを貼っておきますね。

参考URL:http://www.kanzaki.com/docs/jcode.html
    • good
    • 0
この回答へのお礼

ご説明ありがとうございました。
ご指摘いただきましたように、フリーのHTMLエディタを使ってみたところ、HTML(.html)形式で保存する時でも文字コード指定できることを確認しました。
すっきりしました。ありがとうございました。
※ez-HTMLというエディタを使ってみたのですが、METAタグでshift-jisの文字コードを指定するHTMLファイルを、エディタの機能で[Unicode]形式で保存して、IE6.0で開いてみたら、IEのエンコードは[Unicode(UTF-8)]になってました。

お礼日時:2006/03/06 14:08

#4 の方への補足より


>HTMLファイル(.htm/.html)は、テキストファイルのように
この認識が疑問を生んでいるではないかと思います。
たぶん質問者の知識(認識)に対して言いますと、HTMLファイル(.htm/.html)は、テキストファイルの一部なのですが・・・。
拡張子を意識するなら、保存時の文字コードがファイル名(拡張子)を変更するだけで変わるという事ですよね???
もしHTMLファイル(.htm/.html)は文字コードが指定できないが、テキストファイルは文字コードを指定できるとしても、テキストファイルとして保存した後に拡張子を変更すれば・・・。

HTMLファイルの作成で言えば、特定の文字コードでしか保存できないツールなのか、保存時の文字コードをツールの初期値のままで(知らないで)使用している
のではなければ、ツールで文字コードが選択できるのが普通ですが・・・。
というか、HTMLファイルだからという理由で作成が制限される物事はないと思いますが・・・。

>何らかの文字コードで作成されたHTMLファイル
>(文頭にMETAタグによる文字コードの指定がない)を表示する際、
>ブラウザ側は独自に判断(エンコード)して表示に使用する文字コードを選択する、
>そのため時々文字化けすることもある。
#3 でも回答しましたが、まずサーバがヘッダ情報として文字コードの情報を適切に送っているかが問題です。
閲覧側のブラウザ等のツールでは閲覧者はサーバがヘッダ情報を適切に送っているかは調査はできないと思います。
その上で、サーバが送っているヘッダ情報とHTMLファイルの文字コードが異なると、その時点で文字化け・・・。
サーバがヘッダ情報として文字コードを送っていなくてその上で文頭にMETAタグによる文字コードの指定がない場合に、ご指摘のブラウザの誤判断での文字化けの可能性はあります。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。

> HTMLファイルの作成で言えば、特定の文字コードでしか保存
> できないツールなのか、保存時の文字コードをツールの初期値
> のままで(知らないで)使用しているのではなければ、ツール
> で文字コードが選択できるのが普通ですが・・・。

別の方からの回答で解決したのですが、私の知識不足でHTMLファイル
には文字コード指定で保存できるということを知りませんでした。
(普段、notepad.exeでHTMLを見てました。。失礼しました。)

お礼日時:2006/03/06 18:49

ブラウザはHTTPヘッダから貰った文字コードで表示しようとして、でも日本のプロバイダのサーバーの多くはHTTPヘッダで文字コードを送っていないので、メタの文字コードを参照しようとするのですが、そこにも書かれていなければある程度内容で判断するか、デフォルトの文字コードのようなものがありそれで表示するので文字コードが合わなければ文字化けするのです。



ブラウザはそれなりに努力するように作られているようですから、やはり文字コードを指定しない作成者が悪いと思います。

http://www.kanzaki.com/docs/sw/http-header.html

参考URL:http://www.mozilla.gr.jp/standards/webtips0022.h …

この回答への補足

cyokokichi様

回答ありがとうございます。
参考URLも参照させていただきました。
その中で、下記URLの情報をもとにあらためてお聞きしてみたいことがあるのですが。お時間ございましたら回答いただけると幸いです。

http://www.mozilla.gr.jp/standards/webtips0022.h …
このサイトの一番始めで「HTMLで日本語を使用する場合は、ファイル保存の方法が複数ある」と説明されていました。
これを信じると、HTMLファイル(.htm/.html)は、テキストファイルのようにファイル作成の際に文字コード指定を行う(もしくは、ファイル編集を行うアプリケーションなどが裏側で勝手に行ってる)ことができるもの、なんでしょうか。

また、この認識でいくと、何らかの文字コードで作成されたHTMLファイル(文頭にMETAタグによる文字コードの指定がない)を表示する際、ブラウザ側は独自に判断(エンコード)して表示に使用する文字コードを選択する、そのため時々文字化けすることもある。という説明が成り立つのでしょうか。
何度もすみませんが、宜しくお願いします。

補足日時:2006/03/03 11:13
    • good
    • 0

Opera などは事前に文字コードを指定できるので、その場合は、ブラウザのせいと特定できる事もありますが・・・。



文字コードの自動選択の失敗となると、それ自身はブラウザの失敗ですが、判定する為の情報がないとか誤っている可能性がある訳で、対象の HTML ソースに適切な情報がないのも問題ですし、サーバが情報を付加していなかったりしても困るし、一番の問題はサーバがソースと異なった情報を付加していたらサーバの問題というかソースの保存の問題というか・・・。

結局、使える文字コードはある程度選べるのですから、それぞれの適切である情報が存在する必要があるという共同責任でしょう。

まぁ今回の質問の例示の疑問の可能性は、やはりサーバが付加する情報とソースの実体が異なるという可能性が高い気が・・・。
(サーバ側に視点を置けば、情報に合わせた文字コードで保存しない HTML ファイルのせいだし・・・。
また、ファイル側に視点を置けば、保存した文字コードと異なる情報を付加するサーバのせいだし・・・)


>(テキストファイルだと文字コード指定して保存できますが、
>HTMLファイルは文字コード指定して保存できないと思うので、
>通常Shift-JIS選択してページ閲覧している環境でわざわざ他
>の文字コードで読み込もうとするのか疑問です。)
読み込んだ(表示した)後の動作を理由として読み込む動作を考えるのはどうかと・・・。
    • good
    • 0

サーバーのせいかもしれませんよ。


HTMLには表示されませんが、ヘッダー情報で
コードをわたし間違えているのかもしれません。
    • good
    • 0

まあどちらも悪いんですが、「誤動作」したのはどちらかと問われればIEでしょうね。

自動判別に失敗したんですから。

>普段使用してない文字コードでHTMLファイルを読み込もう
 とブラウザがするのかご存知の方いたら教えてください。
WindowsXPや2000の標準はShiftJISではなくUnicodeですよ。Unicodeとして読み込んだんじゃないですかね。

HTMLファイルも、テキストエディタで保存すれば文字コードを指定して保存出来ます。ただブラウザは通常、そんなのは当てにせずヘッダに指定してある文字コード指定をまず参照しますが。

例えば、このページを右クリックして「ソースの表示」をすれば、「 charset=Shift_JIS"」と書いてあります。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
ポイント差し上げられずすみませんでした。

WinXPやWin2000の標準がUnicodeというのは知りませんでした。
これはMicrosoftの技術情報サイトなどに載ってる仕様なのでしょうか。

お礼日時:2006/03/06 14:12

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!