Google Geocode:PHP实现 - 字符编码问题

时间:2009-12-01 12:03:45

标签: php google-maps utf-8 geocoding

我正在处理英国地址数据和国际地址数据。

我需要对地址数据进行地理编码,以便在Google地图上使用。我正在使用HTTP服务。即/构造一个查询字符串并将其传递给file_get_contents($ THEURL)。

我已经成功地对80%的地址数据进行了地理编码,但是挪威和Sweeden这些包含特殊字符的国家/地区的地址不会返回地理编码。返回的代码是602(无法找到地址)。

查看文档,我可以看到发送到谷歌的字符串必须是UTF8编码。

我已尝试以下操作以确保字符串是UTF8编码/删除特殊字符。

1)在查询字符串上使用UTF8编码 - 这通常会导致屏幕上显示格式错误的字符。

2)mb_check_encoding报告字符串已正确编码。

3)使用函数替换他们的europiene eqivilents的特殊字符(希望谷歌api将补偿。

有人能说明我的方法无效的原因(是否与编码有关?)。

1 个答案:

答案 0 :(得分:3)

您需要系统地浏览系统中的每个编码方面,并定义它的编码方式。Mb_detect_encoding并且猜测工作不是一个好方法。

您需要检查编码:

  • 传入数据
    • 获取参数
    • 数据库连接
    • 数据库表排序规则
  • 您使用的脚本文件

如果出现格式错误的字符,您可能在某处使用ISO-8859-1或其他非UTF-8编码。当一切都是干净的UTF-8时,请求应该通过。

关于基础知识的一篇非常好的文章是The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)