我尝试手动构建一个Json字符串以发送给客户端。
{'result':'hhh'}
当我使用
时echo json_encode(array('result'=>'hhh'));
它到达完美。 但是当我做的时候
echo "{'result':'hhh'}";
不是
我发现两个请求之间的唯一区别是第一个请求:
Content-Length: 9 header
和第二个(不起作用)
Content-Length: 16 header
两个字符串都应该是内容长度:16 !!!我想这与ZF和Mootools的组合有关。
答案 0 :(得分:2)
根据规范,JSON需要围绕键名和字符串值使用双引号。
echo json_encode(array('result'=>'hhh'));
将输出
{"result":"hhh"}
此输出的长度为16个字节,如下所示:
echo strlen(json_encode(array('result'=>'hhh')));
输出“16”。
遵循规范的任何JSON解码器都会在出现手动回显的JSON时失败或抛出异常。
答案 1 :(得分:1)
它没有UTF-8的问题,因为UTF-8是它的标准编码。听起来好像你在一个不同的编码方案中回应一些东西,它打破了,而json_encode()正在为你转码。