php json 不转义,php json_encode中文不转义

php json_encode函数处理完包含中文的字符串之后,中文会被处理成一串看不懂的字符串,非常不方便,查了一下php文档,发现自php 5.4起,json_encode新增了一个参数 JSON_UNESCAPED_UNICODE。

JSON_UNESCAPED_UNICODE(中文不转为unicode ,对应的数字 256)

另一个比较常用的参数:

JSON_UNESCAPED_SLASHES (不转义反斜杠,对应的数字 64)

注意:通常json_encode只能传入一个常量,如果同时使用2个常量怎么办?

JSON_UNESCAPED_UNICODE + JSON_UNESCAPED_SLASHES = 320

使用方法:json_encode($arr, 320); 即可完成同时使用2个常量。

对于php 5.3 及以下版本的可通过如下函数进行处理:

function json_encode($array) {

if (version_compare(PHP_VERSION, '5.4.0', '

$str = json_encode($array);

$str = preg_replace_callback("#\\\u([0-9a-f]{4})#i", function ($matchs) {

return iconv('UCS-2BE', 'UTF-8', pack('H4', $matchs[1]));

}, $str);

return $str;

} else {

return json_encode($array, JSON_UNESCAPED_UNICODE);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值