- ベストアンサー
HTMLソースの文字コードがutfの場合、文字化け回避のために<!--龠龠龠--> や <!--京-->といったおまじないは意味なし?
前提として、当方、文字コードについての文章を何度読んでも理解できていないのですが・・・ ============================================================== http://blog.goo.ne.jp/ のHTMLソースにあるように、 EUCのソースでは、<!--龠龠龠-->という文字列をページの銭湯のほうにおいて、UAによる文字化けのみすを防いでいるようです。 http://www.shtml.jp/mojibake/binew.html から引用しますと、 ==================================================== Shift_JISにおいては、2バイト文字の2バイト目は0x40~0x7E、0x80~0xFCの範囲にあります。 したがって、0xFDや0xFEは使われていません。 これらのコードを持つ文字がもし現れているのならば、 ブラウザはShift_JISでないとすぐに判断できるはずですから、 文字化けが発生しないという理屈です。 では、EUC-JPにおいて2バイト目が0xFD及び0xFEを持つ文字とはどのような文字でしょうか? EUC-JPの存在領域から考えて、1バイト目は0xA1~0xFEになります。ここでプログラムで出力しますと (中略) ==================================================== 。。。。ということで、 「龠」という文字は、2バイト文字目が0xFEとなるEUC-JPという理屈だそうです (ちなみにYahoo!Japanは以前SJISを用いていたとき、同様の理屈からか「<!--京-->」というソースをページの先頭のほうにかいていました。 なお、Yahoo!Japanは今はutf8です。(Yahoo!の全サービスでそうなのかはわかりかねますが)) ・・・と思ったら、 http://earthproject.yahoo.co.jp/ のページではEUCで、 <!--京-->というHTMLソースがありました。 そこで、質問なのですが、 HTMlファイルがUTF8の場合は、こういったコザイクは無意味というか無駄なのでしょうか? あるいはもし意味があるとすれば、どういった文字列をHTMLのコメントに書いておけばいいのでしょうか? 文字コードの仕組みが分かっていれば、こういうしつもんもしないかもしれないですが。。。 === なお、どこかで、ApacheやPHPがいじれるのならば、httpヘッダを送る段階で、utf8だとUAに対して名言して出力してしまえば、 このような問題は起こらない、というような内容の文章をどこかで見かけたような記憶もするのですが、 とりあえず、それは不可能という前提で、教えていただければと思います。 以上、よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (2)
- 神崎 渉瑠(@taloo)
- ベストアンサー率44% (1016/2280)