【PR】 良品社中・代理店募集 【PR】 バイオ・リスニングなど英語教材比較 【PR】 地デジ対応テレビなど家電をお探しですか? 【PR】 無料プロバイダ徹底比較 |
||||||
Googleの検索結果サマリーが?と無意味なアルファベットだらけ1時間単位から使えるWordPress専用高速サーバー 【Z.com】
先ほどのページで紹介したGoogleの検索結果サマリーは糸偏の漢字がたくさん出てくるというものでしたが、このページで取り扱う文字化けは、下記の画像のように、「?」と「無意味なアルファベット」が並ぶ文字化けを起こします。下記のページにアクセスしてみてください。
http://www.google.co.jp/search?
ものの見事に全部文字化けしているでしょう。
「テスト」の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」ですから、「?」になる時もあれば、アルファベットや@などになったりします。
※ ただ、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の検索結果サマリーが文字化けする事例についての説明を行うことにします。次の事例は半角カタカナの大量出現です。
|