Geocoder - IE8中的编码问题

时间:2012-08-15 12:54:48

标签: javascript google-maps internet-explorer-8

我正在使用Google Maps API版本3在地理编码器对象的帮助下检索位置。

问题是当使用德语特殊字符时,我在IE8中得到了不受欢迎的结果, 这可能与IE8执行的编码有关。

例如,在搜索德国城市“Köln”时,地理编码器会在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函数encodeURI在Chrome中模仿这种行为。 所以使用encodeURI(searchAddress)也会产生我在IE8中观察到的不良结果,即地理编码器会查找“K%C3%B6ln”而不是“Köln”。

有没有办法阻止IE8这样做?或者有一种解决方法可以将UTF8编码的搜索词而不是URL化的搜索词发送到地理编码器吗?

编辑:我在提交前对搜索字词进行了HTML编码(即Köln变为Köln)。令人惊讶的是,即使术语是HTML编码,Chrome也会返回所需的结果,而IE8仍然失败。可能根本不是编码问题......但奇怪的是,只有在使用德语'Umlaute'(ä,ö,ü,ß)时才会出现错误

1 个答案:

答案 0 :(得分:1)

尝试在HTML页面<meta charset=utf-8">部分添加<head> 还可以查看这些页面以获得进一步的参考: