json_encode结果奇特,源码是:var_dump($data[2]); echo json_encode($data[2]); 结果是string(6) "家教"[136]=>string(6) "驾校"[137]=>string(12) "房屋中介"[138]=>string(6) "装修"[139]=>string(6) "装饰"3c\u79d1\u533b\u9662","\u6574\u5
来源:学生作业帮助网 编辑:作业帮 时间:2024/08/26 16:25:07
![json_encode结果奇特,源码是:var_dump($data[2]); echo json_encode($data[2]); 结果是string(6)](/uploads/image/z/15050543-23-3.jpg?t=json_encode%E7%BB%93%E6%9E%9C%E5%A5%87%E7%89%B9%2C%E6%BA%90%E7%A0%81%E6%98%AF%EF%BC%9Avar_dump%28%24data%5B2%5D%29%3B+echo+json_encode%28%24data%5B2%5D%29%3B+%E7%BB%93%E6%9E%9C%E6%98%AFstring%286%29+%22%E5%AE%B6%E6%95%99%22%5B136%5D%3D%3Estring%286%29+%22%E9%A9%BE%E6%A0%A1%22%5B137%5D%3D%3Estring%2812%29+%22%E6%88%BF%E5%B1%8B%E4%B8%AD%E4%BB%8B%22%5B138%5D%3D%3Estring%286%29+%22%E8%A3%85%E4%BF%AE%22%5B139%5D%3D%3Estring%286%29+%22%E8%A3%85%E9%A5%B0%223c%5Cu79d1%5Cu533b%5Cu9662%22%2C%22%5Cu6574%5Cu5)
json_encode结果奇特,源码是:var_dump($data[2]); echo json_encode($data[2]); 结果是string(6) "家教"[136]=>string(6) "驾校"[137]=>string(12) "房屋中介"[138]=>string(6) "装修"[139]=>string(6) "装饰"3c\u79d1\u533b\u9662","\u6574\u5
json_encode结果奇特,
源码是:var_dump($data[2]); echo json_encode($data[2]); 结果是
string(6) "家教"
[136]=>
string(6) "驾校"
[137]=>
string(12) "房屋中介"
[138]=>
string(6) "装修"
[139]=>
string(6) "装饰"
3c\u79d1\u533b\u9662","\u6574\u578b\u533b\u9662","\u5987\u4ea7\u533b\u9662","\u513f\u7ae5\u533b\u9662","\u836f\u5e97","\u5c0f\u65f6\u5de5","\u4fdd\u59c6","
为什么json_encode部分会这样,不是我意料的结果
json_encode结果奇特,源码是:var_dump($data[2]); echo json_encode($data[2]); 结果是string(6) "家教"[136]=>string(6) "驾校"[137]=>string(12) "房屋中介"[138]=>string(6) "装修"[139]=>string(6) "装饰"3c\u79d1\u533b\u9662","\u6574\u5
没什么好意外的,这是unicode,\u59c6表示一个汉字
unicode编码表
1 unicode编码表
Unicode目前普遍采用的是UCS-2,它用两个字节来编码一个字符,
比如汉字"经"的编码是0x7ECF,注意字符编码一般用十六进制来
表示,为了与十进制区分,十六进制以0x开头,0x7ECF转换成十进制
就是32463,UCS-2用两个字节来编码字符,两个字节就是16位二进制,
2的16次方等于65536,所以UCS-2最多能编码65536个字符.
编码从0到127的字符与ASCII编码的字符一样,比如字母"a"的Unicode
编码是0x0061,十进制是97,而"a"的ASCII编码是0x61,十进制也是97,
对于汉字的编码,事实上Unicode对汉字支持不怎么好,这也是没办法的,
简体和繁体总共有六七万个汉字,而UCS-2最多能表示65536个,才六万
多个,所以Unicode只能排除一些几乎不用的汉字,好在常用的简体汉字
也不过七千多个,为了能表示所有汉字,Unicode也有UCS-4规范,就是用
4个字节来编码字符,不过现在普遍采用的还是UCS-2,只用两个字节来
编码,看一下Unicode对汉字的编码: