2009-12-01 47 views
0

我正在处理英国地址数据和国际地址数据。Google地理编码:PHP Implimentation - 字符编码问题

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

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

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

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

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

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

3)使用功能substitue为thier europiene eqivilents特殊charcters(希望谷歌的API将进行补偿。

任何人都可以提出一个原因,我的方法不工作(无论是与编码还是不行?)

回答

3

您需要系统通过每个编码方面走在你的系统,并把它定义为Mb_detect_encoding和猜测什么编码是不是一个好方法这里

您需要检查的编码:。

  • 输入数据
    • GET参数
    • 数据库连接
    • 数据库表中的排序规则
  • 脚本文件你

工作,如果格式不正确的字符,且发生r,你有可能在某处使用ISO-8859-1或其他非UTF-8编码。当一切都清楚的UTF-8,请求应该通过。

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

+0

这是连接!天才。 –