「google analytics 矢机步け」などというキーワードで検索してこのページにたどり着く人がいる (ここに書いてあるしね)。 しかし、その人の検索キーワードは、本当は「google analytics 文字化け」だったはずなのだ。 Google Analytics上では、「文字化け」が「矢机步け」になってしまうことがある。 ここでは、このような問題への対応方法を示し、この文字化けが起こる原因を説明する。 Google Analyticsではほかのタイプの文字化けも起こっているが、それらは扱わない。
Google Analyticsで起こる文字化けの一部はYahoo! Japanの文字コードをGoogleが誤解していることが原因である。 このタイプの文字化けは、文字化けした結果を以下のフォームに貼り付けて「変換」ボタンを押せば復元できるはず。
2007年5月27日現在、Yahoo! Japanの文字コードはEUC-JPである。 そのため、Yahoo! Japanでの検索は、EUC-JPでエンコードした検索キーワードを含んだURLでなされる。 Google AnalyticsはそのURLを取得し、エンコードされたデータを文字列に復元しようとするが、 その際間違って、EUC-JPではなくEUC-CNを使う。 結果として、文字化けが発生する。
Yahoo! Japanで「鮪」を検索すると、「鮪」のEUC-JPコードである「0xCBEE」がネット上を流れる。Googleはそれをキャッチして、文字コードから文字を復元しようとするが、 「0xCBEE」はEUCなのはまあ推定できるとして、EUC-JPなのかEUC-CN(あるいはGB2312)なのかがわからない。 悪いことに、GoogleはEUC-JPではなくEUC-CNのコードだと誤解して、「祟」という文字を復元してしまう。
参考:GB2312コード表
もう少し例を挙げよう。
文字化けした結果も日本語(含人名)辞書に含まれるケースをまとめた(ファイル。 ひらがなを含むものは省くべきだったかもしれない)
辞書に載っていなくても、「童貞」が「聘溺」になったり(「耽溺」ではない)、 「万物理論」が「它湿妄侠」になるなど、 何となくそれっぽく化けるものもある。
Googleは文字コードを推定するのをやめるべき。Yahoo! Japanの検索キーワードをエンコードするのに使う文字コードは、Yahoo! Japanに行けばわかるのだから、 その手間を惜しむべきではない。このことは、ここで扱ったタイプの文字化けに限らない。 一般に、文字化けが起こると情報が失われ、失われた情報は戻ってこないということを深刻に受け止めてほしい。
Yahoo! Japanは文字コードをUTF-8にするべき。 いまどきEUC-JPなんて、「世界を相手にするつもりはありません」と宣言しているようなものだ (実際そうなのかもしれないが)。