2

我正在使用 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 仍然失败。也许根本不是编码问题......但奇怪的是,只有在使用德语“元音变音”(ä,ö,ü,ß)时才会出现错误

4

1 回答 1

1

尝试<meta charset=utf-8">在您的 HTML 页面<head>部分中添加。
还请查看这些页面以获取更多参考:

于 2012-08-18T20:01:33.733 回答