2

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が失敗しているときに、目的の結果を返します。エンコーディングの問題ではないかもしれませんが...奇妙なことに、エラーはドイツ語の「ウムラウト」(ä、ö、ü、ß)を使用した場合にのみ発生します。

4

1 に答える 1

1

<meta charset=utf-8">HTMLページセクションに追加してみてください<head>
詳細については、これらのページも参照してください。

于 2012-08-18T20:01:33.733 に答える