Monday, October 10, 2005

Google Maps APIと文字コード

Google Maps APIと文字コード

文字コードまわりをEUCで固めた環境で作業していて気づいたのだが、 EUCで書かれたhtmlに埋め込んだJavaScriptからGoogle Maps APIを呼び出すと、 Internet Explorerが「エラー:'GMap'は宣言されていません」のようなエラーを吐く。ちなみにFireFox等ではこのエラーは出ない。

原因は、Google Maps APIとしてGoogleが提供するJavaScriptやデータ等が文字コードとしてUTF-8を基本としているため、それ以外の文字コードで書かれたHTML等とと混ぜようとするとIEが解釈しきれないらしい。

しょーがないってんでわざわざ呼び出し元のHTMLのほうを UTF-8で書き直したりしている人も多いのではないかと推察されるが、すでにEUCやShift_JISで書かれたリソースを沢山保持している人にとっては文字コードの乗り換えも混在もできればやりたくないのが当然だろう。

実は簡単な解決方法がある。 Google Maps APIではその基本的なライブラリを次のように呼び出すことになっているのだが、

<script src="http://maps.google.com/maps?file=api&v=1&key=....."
type="text/javascript"></script>


これを、次のようにするだけ。

<script src="http://maps.google.com/maps?file=api&v=1&key=....."
type="text/javascript" charset="utf-8"></script>


これで、ブラウザがよきにはからってくれるようになる(らしい)。

No comments: