php5.3 解决 json_encode 中文乱码问题

在 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);

测试结果
file

发布了145 篇原创文章 · 获赞 24 · 访问量 12万+

猜你喜欢

转载自blog.csdn.net/xiaobinqt/article/details/101523535