我正在使用GoogleMaps API来检索位置信息。结果通过cURL
获取,并且使用json_decode
将获取的字符串转换为JSON对象。
对于许多地方(例如荷兰),这就像一个魅力。但是对于许多德国人(可能还有更多像奥地利,瑞士等国家)来说,这并不像预期的那样有效。
我认为这是因为ß
等'特殊'字符,还有ü
,ë
,ä
,ï
等等。
以下$sResponse
是cURL
提取的结果。
当我尝试执行json_decode($sResponse);
时,其值变为null
。当我执行json_last_error()
时,它会显示5(表示JSON_ERROR_UTF8)。当我执行mb_detect_encoding($sResponse)
时,它会显示UTF-8
。
有什么建议吗?
答案 0 :(得分:2)
如果您遇到此问题,请确保您已将文档设置为必须更正字符集。在我的情况下,我忘了将<meta charset='utf-8'>
包含在我的index.php
文件中。对我而言,这是我忽略的......愚蠢......但也许它将来会帮助你;)
正如Gumbo正确提到的,这不是解决问题的唯一方法。 (它只修复了我的浏览器中数据的显示方式)。我还使用Encoding
在Encoding::toUTF8()
- 库中玩。这是我在寻找解决方案时发现的非常整洁且有用的课程。您可以在此处阅读:Detect encoding and make everything UTF-8