我正在处理英国地址数据和国际地址数据。
我需要对地址数据进行地理编码,以便在Google地图上使用。我正在使用HTTP服务。即/构造一个查询字符串并将其传递给file_get_contents($ THEURL)。
我已经成功地对80%的地址数据进行了地理编码,但是挪威和Sweeden这些包含特殊字符的国家/地区的地址不会返回地理编码。返回的代码是602(无法找到地址)。
查看文档,我可以看到发送到谷歌的字符串必须是UTF8编码。
我已尝试以下操作以确保字符串是UTF8编码/删除特殊字符。
1)在查询字符串上使用UTF8编码 - 这通常会导致屏幕上显示格式错误的字符。
2)mb_check_encoding报告字符串已正确编码。
3)使用函数替换他们的europiene eqivilents的特殊字符(希望谷歌api将补偿。
有人能说明我的方法无效的原因(是否与编码有关?)。
答案 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!)。