街中で見かけて「グッときた人」の思い出

こんにちは。
こここで質問できるものなのか疑問ですが素朴な疑問をよろしくお願いします。

世の中のWEBサーバはWindowNTであったりUNIXで
あったり様々ですよね。
私の聞いたところによると、HTMLの中に記述する漢字コードはUNIXはEUCであったりWindowsはSJISだったり様々です。

例えば、Windowsのブラウザーはエクスプローラですが
Webサーバの違いは関係なく表示できています。
そこで質問なのですが、
漢字コードの解決はどこで行なっているのでしょうか?
各ブラウザなのですか、それともWebサーバが共通のコードに
変換しているのですかね?(例えばUnicodeなんかに)
というか完全に勘違いをしてますか?

かなりまとはずれな質問ですが、どなたかわかりやすいように
説明お願いします。

A 回答 (3件)

>各ブラウザなのですか、それともWebサーバ?


単純には、ブラウザ側ですね。

HTML中に、(↓このページから、持って来ました。)
<meta http-equiv="Content-Type" content="text/html; charset=EUC-JP">
と言う感じで、コード体型を埋めて置き、それをブラウザ側で判断してますよ。

他のページでも、同様のコードが有ると思いますよ。

この記述が無い場合は、ブラウザ側が「多分これ!」と判断して表示したりします。(これが間違ってる時は、表示がバケるのです。)
    • good
    • 0

サーバがHTMLを送り出す時に、そのファイルに関する情報をヘッダ(応答ヘッダ)として付加して送り出します。

その中に文字コードがなんであるか、という情報も含まれています。

ex.MIMEタイプはテキストのHTML文書で、シフトJISコード
Content-Type: text/html; charset=Shift_JIS

ページ作者は.htaccessファイルまたはMETA要素で応答ヘッダ中の文字コード情報を明示することができます。

ex.上記の情報をヘッダに含めさせるMETA要素
<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">

ただし、サーバによってはこれを許可していない/META要素による指定は反映させない、ことがあります(ちょっと古いサーバなどは反映してくれません)。


ブラウザは、応答ヘッダの文字コード情報を解釈してどの文字コードとしてHTMLを扱うべきかを判断します。指定されている場合はこれが最優先されます。

応答ヘッダには文字コードが指定されていない場合、仕様上はISO-8859-1(US-ASCII)と見なされます。

が、少し前まではページ作者が応答ヘッダに文字コード情報を入れることができないことも多かったので、META要素で指定してあればそれを採用し、それもなければ文書中の文字を解析して文字コードを推測するようになっています(なってないブラウザもあるかも)。

この推測の場合、デフォルトは「直前に見ていたページの文字コード」になりますので、ページの最初の方の文字によっては必ず誤判定されることもあります。

したがって、原則としてはサーバ側で(ページ作者の指定で)解決されるのですが、それができない場合はブラウザに委ねられる、ということになりますかね。
    • good
    • 0
この回答へのお礼

みなさま
ありがとうございました。

初心の私でもなんとか理解できました。

お礼日時:2002/01/11 12:42

基本的に、ブラウザがやっています。



ブラウザも万能ではないので、HTML の中に <META> タグを使って、このファイルは
どういうコードで書かれているよ、とお助け情報を書くことができます。

Webサーバにあるドキュメントの漢字コードは、OS によって決まっているわけでは
なく、単に扱い易いという理由で Windows系は SJIS が多かったりします。

「扱い易い」というのは、OS 標準のツールを使う場合に漢字コードを意識しなくて
済む、ということです。例えば、Windows でメモ帳を使ってみられるとか。
    • good
    • 0

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