我正在使用 Google Maps API 版本 3 在地理编码器对象的帮助下检索位置。
问题是当使用德语特殊字符时,我在 IE8 中得到了不想要的结果,这可能与 IE8 执行的编码有关。
例如,在搜索德国城市“Köln”时,geocoder 在 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”而不是“Köln”。
有没有办法阻止 IE8 这样做?或者有没有办法将 UTF8 编码的搜索词而不是 URLified 的搜索词发送到地理编码器?
编辑:我在提交之前对搜索词进行了 HTML 编码(即Köln
变为Köln
)。令人惊讶的是,即使该术语是 HTML 编码的,Chrome 也会返回所需的结果,而 IE8 仍然失败。也许根本不是编码问题......但奇怪的是,只有在使用德语“元音变音”(ä,ö,ü,ß)时才会出现错误