Google Maps APIバージョン3を使用して、ジオコーダーオブジェクトを使用して場所を取得しています。
問題は、ドイツ語の特殊文字を使用すると、IE8で望ましくない結果が得られることです。これは、おそらくIE8が実行するエンコーディングと関係があります。
たとえば、ドイツの都市「ケルン」を検索すると、ジオコーダーはChrome、FF、Safari、IE9で正しい結果を返し、対応する場所に移動します。
IE8で同じ都市を検索すると、フランスの対応していない都市に移動します。
これは私のコードがどのように見えるかです:
var gcreq = {
address: searchAddress, // e.g. ('Köln, DE')
region: 'de',
language: 'de'
};
geocoder.geocode(gcreq, function(results, status) {
...
}
JS関数を使用して、Chromeでこの動作を模倣できますencodeURI
。したがって、を使用encodeURI(searchAddress)
すると、IE8で観察した望ましくない結果も生成されます。つまり、ジオコーダーは「ケルン」ではなく「K%C3%B6ln」を検索します。
IE8がこれを行うのを防ぐ方法はありますか?または、URL化された検索語の代わりにUTF8でエンコードされた検索語をジオコーダーに送信する回避策はありますか?
編集:送信前に検索語をHTMLエンコードしました(つまり、Köln
になりますKöln
)。驚いたことに、Chromeは、用語がHTMLでエンコードされている場合でも、IE8が失敗しているときに、目的の結果を返します。エンコーディングの問題ではないかもしれませんが...奇妙なことに、エラーはドイツ語の「ウムラウト」(ä、ö、ü、ß)を使用した場合にのみ発生します。