在 php 5.4 之后有一个常量 JSON_UNESCAPED_UNICODE
可以解决转 json 时中文乱码问题:
json_encode($json,JSON_UNESCAPED_UNICODE)
但是php 5.3 怎么解决中文乱码问题呢?我最近维护的项目是 php5.3 写的,哭死!
可以使用正则把这个问题解决
<?php
/**
* Created by PhpStorm.
* User: binWei
* Date: 2019/8/23
* Time: 10:54
*/
$content = '{"x_axis":[{"label":"日期","type":"dimen","name":"p_date","column_type":"DATE"}],"y_axis":[{"name":"dtl_exp_user_num_real","type":"indict","label":"主TL真实曝光用户数","value_type":1,"decimal_scale":2,"is_srr":0,"column_type":"INT"}]}';
$content = json_decode($content, true);
$ret = preg_replace_callback("/\\\u([0-9a-f]{4})/i", function ($match) { // php >= 5.3 都可以
return json_decode("\"{$match[0]}\"", true);
}, json_encode($content));
echo($ret);
测试结果