PHP转JSON,中文会被转码成unicode,使用常量JSON_UNESCAPED_UNICODE
可以使中文原样输入。
不使用JSON_UNESCAPED_UNICODE
echo json_encode("中文");
//Output: "\u4e2d\u6587"
使用JSON_UNESCAPED_UNICODE
echo json_encode("中文", JSON_UNESCAPED_UNICODE);
//Output: "中文"
Json在5.4
还加入了: JSON_BIGINT_AS_STRING
, JSON_PRETTY_PRINT
, JSON_UNESCAPED_SLASHES
等选项, 如果有兴趣, 大家可以参看: json_encode
其中有2个比较常用到的参数
JSON_UNESCAPED_UNICODE
(中文不转为unicode ,对应的数字 256)
JSON_UNESCAPED_SLASHES
(不转义反斜杠,对应的数字 64)
通常json_encode只能传入一个常量,如果同时使用2个常量怎么办?
JSON_UNESCAPED_UNICODE
+ JSON_UNESCAPED_SLASHES
= 320
使用方法:json_encode($arr,320);即可完成同时使用2个常量。
PHP5.4才支持JSON_UNESCAPED_UNICODE
这个参数,此参数是让中文字符在json_encode的时候不用转义,减少数据传输量。