我正在使用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'(ä,ö,ü,ß)时才会出现错误
答案 0 :(得分:1)
尝试在HTML页面<meta charset=utf-8">
部分添加<head>
还可以查看这些页面以获得进一步的参考: