1

我正在使用 GoogleMaps API 来检索位置信息。结果是通过获取cURL的,获取的字符串应该使用json_decode.

对于许多地方(例如荷兰)来说,这就像一个魅力。但是对于许多德国人(可能还有更多的国家,如奥地利、瑞士等),这并没有按预期工作。

我相信这是因为“特殊”字符,例如ß, ü, ë,ä等等ï

例如:这是通过 cURL 获取的字符串 ( http://maps.googleapis.com/maps/api/geocode/json?address=Stoltenkampstra%C3%9Fe%2011,Bad%20Bentheim&sensor=false&language=nl )

以下$sResponse是 获取的结果cURL。当我尝试执行时,json_decode($sResponse);它的值变为null. 当我执行json_last_error()时,它显示 5(这意味着 JSON_ERROR_UTF8)。当我执行mb_detect_encoding($sResponse)它说UTF-8

有什么建议么?

4

1 回答 1

2

如果您也遇到此问题,请确保您已将文档设置为必须更正字符集。就我而言,我忘记包含<meta charset='utf-8'>在我的index.php-file 中。对我来说,这是我忽略的......愚蠢......但也许它会在未来帮助你;)

正如 Gumbo 正确提到的,这不是解决问题的唯一方法。(它只修复了数据在我的浏览器中的显示方式)。我也在玩Encoding-library,使用Encoding::toUTF8(). 这是我在寻找解决方案时发现的一个非常简洁和有用的课程。你可以在这里阅读:检测编码并使一切都变成 UTF-8

于 2013-06-27T18:20:13.143 回答