【PR】 良品社中・代理店募集
【PR】 バイオ・リスニングなど英語教材比較
【PR】 地デジ対応テレビなど家電をお探しですか?
【PR】 無料プロバイダ徹底比較
 

Googleの検索結果サマリーが?と無意味なアルファベットだらけ



1時間単位から使えるWordPress専用高速サーバー 【Z.com】


先ほどのページで紹介したGoogleの検索結果サマリーは糸偏の漢字がたくさん出てくるというものでしたが、このページで取り扱う文字化けは、下記の画像のように、「?」と「無意味なアルファベット」が並ぶ文字化けを起こします。下記のページにアクセスしてみてください。

http://www.google.co.jp/search?
sourceid=navclient&hl=ja&ie=UTF
-8&oe=UTF-8&q=%3Fe%3FX%3Fg

ものの見事に全部文字化けしているでしょう。約7,070,000(2003年6月22日現在)約6,550,000(2003年7月22日現在)→約15,400,000(2004年3月16日現在)と表示されています。1500万件以上です。

これらの文字化けの原因解明を行ってみます。一つ一つのページを見てみると、

  • Shift_JISのページなのにiso-2022-jpもしくはjis、x-jisというメタタグを使用している。これが一番多い。そして、問題の「?e?X?g」は「テスト」が文字化けしたものであることが分かります(実際には他の文字が文字化けした結果である可能性もありえます)。
  • Shift_JISのページなのにUTF-8というメタタグを使用しているサイト。
  • Shift_JISのページなのにEUC-JP、x-euc-jpというメタタグを使用している。
  • Shift_JISのページなのにメタタグを指定していない。
  • Shift_JISのページなのに「SJIS-JP」と指定している。
  • Shift_JISのページなのに、メタタグも正しく指定しているが、文字コードを指定するメタタグの上に、大量の英語だけのメタ・keywordsやdescriptionが記述されている。
  • 原因不明なもの。ただ、ヘッダー部分にまでタブを使った整形などがなされており、これが原因?とも思えるものもちらほら。その他、<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">とdoctypeを指定している真面目なサイトほど文字化けしているように見えるのは気のせいだろう。
では、なぜ「テスト」が「?e?X?g」に化けるのかを考えて見ましょう。ここで、まず、いつもの (flash)を利用してみます。 です。

「テスト」のURLエンコード値は「%83e%83X%83g」であることが分かります。しかし、JIS(ISO-2022-JP)は7ビットですから、最上位ビット(MSB。Most Siginificant Bit)は立っていません。したがって、出現しうる最大の数は「0x7F(『0x』とはその後に続く文字列が16進数であることを示しています。)」であり、「0x83」はありえません。そのため、「?」に化けます。その結果、「テスト」は「?e?X?g」に文字化けします。

同様に「ガイド(%83K%83C%83h)」は「?K?C?h」に化けます。こちらがGoogleの検索結果です。「インターネット(%83C%83%93%83%5E%81%5B%83l%83b%83g)なら、「?C?^?[?l?b?g」になります。Google検索の結果はこちらになります。

Shift_JISの文字コードの特徴として、2バイト文字が現れる際の約束事として、JISとの区別を容易にするために1バイト目は「0x81〜0x9F及び0xE0〜0xEF(外字領域を除く)」と決められています。JISでは決して出現することのない領域を敢えて使っているのですから、これらの文字コードがJISと判断されれば、「?」のオンパレードになるのは当たり前とも言えます。Shift_JISの2バイト目の範囲は、「0x40〜0x7E及び0x80〜0xFC」ですから、「?」になる時もあれば、アルファベットや@などになったりします。


<<インターネットはIS0-2022-JPしか使ってはいけないの?>>
しかし、何ゆえにかくも、このタイプの文字化けが多いのでしょうか? 思い当たるのは、あくまでも想像ですが、「インターネットはJIS(ISO-2022-JP)」という中途半端な知識が関係しているかもしれないということです。確かにメールは7ビット文字しか通さないメールサーバの存在などを考慮して、ISO-2022-JPで送信するのが普通です。実際には、WindowsやMacでメールを作成している段階ではShift_JISですが、Outlook ExpressなどのメールソフトがISO-2022-JPに自動変換して送信しています。しかし、これはメールの世界です。

 ただ、ISO-2022-JPでなければ絶対に駄目かというとそういうこともありません。好き嫌いはあるでしょうが、MIMEエンコードを活用すれば、UTF-8で送信することも可能です。この辺りの事情は、別項「ブラウザ・メールソフト別UTF-8対応状況」をご参照ください。

Web(ホームページ)の世界は違います。プログラムとの連携がない静的なページであれば、ISO-2022-JPで作成するのも問題ありませんが、プログラムとの連携には全く不向きです。また、決してShift_JISでホームページを作成するのが悪いわけではありません。ましてや、自分が本当はShift_JISでページを作成しているのを知らずに、「インターネットはISO-2022-JP」という知識をなまじっか持っているがゆえに、メタタグだけISO-2022-JPを指定して、実際はShift_JISで保存してしまっているケースがこの種の文字化けの原因ではないかと思います。

メタタグだけでなく、実際に保存形式を変えないといけないのですが、Shift_JISでしか保存できないエディターは多いですので、このような誤解が生まれやすいのだと思います。また、ブラウザで表示させたときには、ブラウザの補正機能により"正しく"表示されるため、気がつきにくいというのがあります。秀丸エディタなら、現在編集しているファイルの文字コード及び改行コードがウインドウ最上部に表示され、便利です。

なお、「テスト」が「?e?X?g」に化けているケースと「eXg」に化けているケース(「?」は出現しない。)がありますが、両者の違いについては解明できていません。研究中です。

次のページでも、さらにGoogleの検索結果サマリーが文字化けする事例についての説明を行うことにします。次の事例は半角カタカナの大量出現です。