我正在 PHP (5.3.1) 中的一个项目中工作,我需要将 JSON 字符串发送到 web 服务(在 python 中),但是从 json_encode 获得的结果不会作为有效的 JSON 传递(我正在使用 JSLint检查有效性)。
我应该补充一点,我尝试编码的结构相当大(13K 编码),并且部分由 UTF8 数据组成,虽然 json_encode 确实处理它,但我在结果中的奇怪位置得到了空格。例如,我可以获得 {"hello":true} 或 {"hell o":true} ,这会导致 Web 服务出现错误,因为 JSON 无效(或数据,如第二个示例中所示)。
我还尝试使用 Zend 框架进行 JSON 编码,但这并没有太大不同。
PHP 中的 JSON 是否存在已知问题?有人遇到过这种行为并找到解决方案吗?
您声明“我尝试编码的结构...部分由 UTF8 数据组成”。这意味着它也是非 UTF8 数据的一部分。这json_encode doc http://php.net/manual/en/function.json-encode.php底部有一条评论,
json_encode() 期望字符串以 UTF8 格式编码,而默认情况下 PHP 字符串采用 ISO-8859-1 编码。
这意味着
json_encode(数组('àü'));
将生成一个空字符串的 json 表示,而
json_encode(数组(utf8_encode('àü')));
将工作。
JSON 的失败段是否是由于非 UTF8 输入造成的?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)