PHP转JSON,中文会被转码成unicode,使用常量JSON_UNESCAPED_UNICODE可以使中文原样输入

echo json_encode("中文"); 
//Output: "\u4e2d\u6587"

echo json_encode("中文", JSON_UNESCAPED_UNICODE); 
//Output: "中文"

 

Json在5.4还加入了: JSON_BIGINT_AS_STRINGJSON_PRETTY_PRINTJSON_UNESCAPED_SLASHES等选项

其中有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个常量。

$arr=[
"a"=>"test",
"b"=>"测试",
];

echo json_encode($arr,320);
//{"a":"test","b":"测试"}
echo json_encode($arr);
//{"a":"test","b":"\u6d4b\u8bd5"}

  

 posted on 2023-03-02 09:33  boye169  阅读(167)  评论(0编辑  收藏  举报