- ベストアンサー
このページをご覧ください。これはおそらく中国人の方が、名古屋の旧東邦大
このページをご覧ください。これはおそらく中国人の方が、名古屋の旧東邦大学と騙って作った偽ホームページです。http://www.nagoya-toho.com/index.asp 私は文字コードの勉強をしていまして、このページを見て、なぜ中国の文字コード gb2312 で日本の文字を文字化けせずに表現できるのか、不思議に思いました。charset=gb2312 となっているのです。なぜなのでしょうか? ちなみに、そのページが参考にしたサイトは西南学院大学のページで、そこは charset=UTF-8 となっておりました。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
私も今調べて知ったのですが、GB2312の上位互換にUnicode1.1の漢字を含むGBK(=マイクロソフトコードページ936)というものがあるようです。 そしてUnicode1.1には日本のJISX0208(JIS第一・第二水準)などの文字が含まれています。 http://ja.wikipedia.org/wiki/GBK さて、charsetがGB2312と指定されていながらGB2312で未定義のコードポイントが含まれていたときどうするかですが、GBKの文字を表示してしまっても、表示できる文字が増える分には困らないでしょう。 なのでブラウザの設計としてGB2312と指定されてもGBKの文字を表示するようになっているのだと思います。 同様に、charsetにShift_JISを指定しても、マル1やはしご高などの機種依存文字を含むマイクロソフトコードページ932の文字が表示されるようです。 また、当該文字コードに含まれない文字を表示するHTMLの機能として文字参照があります。 半角で「&(文字名);」や「&#(文字コード);」と入力することによりその文字コードの文字が表示されます。 例:「©」「한글」(文字が表示されていたらソースを見てください)
その他の回答 (2)
- SortaNerd_
- ベストアンサー率59% (309/522)
No2です。すいません、ここではソースの時点ですでに文字のまま書かれてしまうようです。 文字参照の例はこのようになります。 한글 もしこれも正常に表示されなければ、 한글 を半角にしたものです。
- php504
- ベストアンサー率42% (926/2160)
GB2312にはカタカナやひらがなも割り付けてあるので日本語を表示できます
お礼
ありがとうございます。wikipedia も調べてみたのですが、GB2312 は簡体字のみを表現できて、日本の漢字は入っていないと理解しています。なぜ文字化けしないのでしょうか?もしかして CSS で定義してあるんでしょうか?私は HTML すら完璧には理解しておりませんので。
お礼
SortaNerd さん、よくわかる解説をありがとうございました。ブラウザが「もしこの文字コードにない文字がでたら、別の文字コードを参照せよ」と規則を持っているということですね? このルールが書いてあるサイトを探してみようと思います。もしかしたら、ブラウザーによっても違うのかしら? 文字参照はハングル文字ですね? ?? と出ました。