プロが教えるわが家の防犯対策術!

前提として、当方、文字コードについての文章を何度読んでも理解できていないのですが・・・
==============================================================


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に対して名言して出力してしまえば、
このような問題は起こらない、というような内容の文章をどこかで見かけたような記憶もするのですが、
とりあえず、それは不可能という前提で、教えていただければと思います。


以上、よろしくお願いいたします。

A 回答 (3件)

意味はありますが、たまに起こる文字化けの中でEUCが最も頻度が高いようなのであまり使うことはないと思います。


macのsafariで起こる問題のようなので、実際に確認されてみてはどうでしょう?
環境が手元に無い場合、スクリーンショットを取ってくれるサービス等もあるのでそちらを利用してみると良いかもしれません。
    • good
    • 0

> HTMlファイルがUTF8の場合は、こういったコザイクは無意味というか無駄なのでしょうか?


UTF-8でも文字化けの可能性はありますが、
文字コードが指定されていれば、まともなブラウザであれば文字化けは起こりません。

httpヘッダの替わりに
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
というのがありますが、これは使えませんか?

> ​http://earthproject.yahoo.co.jp/
> のページではEUCで、
> <!--京-->というHTMLソースがありました。
<title>の前に入れないと意味はないと思います。
<meta>が最初に入ってるので文字化けはしませんが。
    • good
    • 0

> (ちなみにYahoo!Japanは以前SJISを用いていたとき、同様の理屈からか「<!--京-->」というソースをページの先頭のほうにかいていました。



Yahoo! JAPANは以前はサービス全体でEUC-JPを使用していました。
少なくてもトップページはEUC-JPでした(SJISではないですよ)。

Y!の <!--京--> もやはり文字化け対策として入れられていたようですが
本当に効果があったかどうかは定かじゃありません。

そもそも、エンコードの機械判別は厳密には難しいでしょう。
ページの先頭何文字かに含まれるエンコードとContent-typeに出力
されたcharset及びmetaタグのcharsetやブラウザの言語コードなどから
判別しようとするようですがこれが存在しなかったり間違っていたり
する場合も多いです。
(IEは判別できなかったり間違っているとOSのデフォルトロケールを
使用しようとする事があるみたいですが)

なお、本当に適切なHTMLなら必ずtitleタグの前に文字コードを指定
しておきましょう。
完全に間違いがなくブラウザ側が判別できるエンコードなら通常、
文字化けが起こることはないはずです(それでも確実とは言えませんが)。
    • good
    • 0

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