- ベストアンサー
HTMLでUniCode表示?
シフトJISエンコードのHTMLを下記のように作成して、 IE5.5で表示すると、正常に表示されるのですが、 なぜ表示されるのか、分かりません。 IE側のエンコードもシフトJISになっているのに、 どうして、⑴ の部分がUnicodeの9332番の 文字((1))を呼び出すのでしょうか? わかりにくい質問になってしまいましたが、 よろしくお願いします。 <html> <head> <title>TEST</title> </head> <body> あああaaa⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⒇あああaaa </body> </html>
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
「&#数値;」という記述は「文字参照」の一種で、「数値」を文字コードとする Unicode の文字を表示するものと定義されています。 ※これは Content-Type で指定した文字セットに関係なく、常に Unicode となります。 また、これは HTML4.0 に対応したブラウザならば、OSなどの環境に依存せず、問題なく表示されることになっています。 HTML4.0の仕様書に書かれていますので、こちらもご覧ください。 http://www.w3.org/TR/REC-html40/charset.html http://www.asahi-net.or.jp/~bd9y-ktu/html4rec_f/charset.html (日本語訳)
その他の回答 (4)
- peron
- ベストアンサー率45% (43/95)
面白い現象ですね サンプルをコピペしてMETAタグでShift_JISを指定し、ついでにaaaの後に<BR>☀を付けて色々なブラウザ&OSでテストしてみました。 XP上のNN7では総て表示されました(これは確信がありました NN6以降はユニコード対応の為・・OSに依存しない もちろん追加した最後のお天気マークも表示されました)同じXP上のIE6ではお天気マーク以外は表示、同じくNN4.7では全滅 ME上のIE5.5ではお天気マーク以外OK 同じくNN6では総て表示 98上のIE6でもお天気マーク以外は表示 不思議ですな・・・発見です
- nuruhho44
- ベストアンサー率57% (38/66)
こういうのを「数値文字参照」というらしいです。他に「文字実体参照」というのもあります。 なぜ表示されるかと聞かれても「そうなっているから」としかお答えできないので、詳しいことは「数値文字参照」で検索なさってみてください。
- Dpop
- ベストアンサー率51% (279/544)
#1 です。 サーバーの文字コードと、クライアントの文字コードをごっちゃにしている様です。 まず、Windows2000も、Unicode をサポートしているそうです。申し訳ない! OSが持っているフォントセットの中に、(1)などが含まれているためです。 システムの中に、文字コード表と言うのがあると思うので、MS ゴシックなどを見て頂けると分かると思います。 Webサービスでの文字コードと言うのは、サーバー上の文字コードと、クライアント上(PC上)の文字コードの対応によって決定されます。 サーバー上の文字コードと言うのは、HTML だったら CGI だったりのコード上の文字コードと、サーバー自体の文字コードに分かれます。ここでは大きく意味を持ちませんが、「表示」などが文字化けを起こす理由が、サーバー自体の文字コードと、HTML などのコードの文字コードの違いから発生するものですね。 サーバーから、例えば SJIS として表示しているページでも、EUC として表示しているページでも、クライアント上で利用されるフォントはどちらも同じですよね。ブラウザのフォント設定の欄を見ると、固定ピッチフォントと、プロポーショナルピッチフォントを設定する項目はあるものの、SJIS用, EUC用・・・ などの設定は無いですよね? サーバー上でどう指定されていても、クライアント上で表示する場合には、PC上のフォントを使用して表示する必要があるため、サーバー上でSJISと指定していても、OSがUnicodeをサポートしていれば、対応するフォントの内容を表示することになる(せざる負えない。と言った方が正しいかも知れない。)と言うことです。 # うぅ~ん。説明が、やや冗長かな?
- Dpop
- ベストアンサー率51% (279/544)
ご利用のOSは、WindowsXP では無いでしょうか? 試しに、他のOS(Windows2000 とか Me とか)でブラウズしてみて下さい。キット。Unicode 部分は表示されないと思います。 また、他のブラウザ(NetscapeやOpera)を利用しても結果は全く同じになるはずです。 WindowsXPがUnicodeをサポートしているためです。
補足
お返事ありがとうございます。 OSは、Windows2000を使っています。 が、表示されています。 Windows2000がUnicodeサポートしているからって ことでしょうか? でも、OSがサポートしているとしても、 エンコードをシフトJISを指定しているのに、 なぜUnicodeの文字が表示出来るのでしょうか?