• php数组使用json_encode函数中文被编码成null的原因和解决办法


    json格式在开发中用的十分广泛。在php中json_encode函数可以直接将数组转成 json格式,十分方便。但是有可能你在使用json_encode函数时,无奈的发现中文被编码成null了。原来json只支持转义utf-8编码格式的中文。

    所以如果你是数据是gbk格式或者gb2312格式 那么你就需要转码

    header("Content-Type:text/html;charset=gb2312");
        $name = trim($_GET['name']);
        $data = $db->query("select name from engine where source=N'{$name}'");
        // 调用转码函数
        $datas = array_iconv($data);
        print_r(json_encode($datas));die();/**
     * [array_iconv 进行转码因为json函数支持gbk格式]
     * @param  [type] $arr         [description]
     * @param  string $in_charset  [description]
     * @param  string $out_charset [description]
     * @return [type]              [description]
     */
    function array_iconv($arr, $in_charset = "gb2312", $out_charset = "utf-8") {
        $ret = eval('return ' . iconv($in_charset, $out_charset, var_export($arr, true)) . ';');
        return $ret;
    }

    此处我数据库查出来的数据是gb2312格式所以导致我json返回的中文一直为空,所以在返回的时候进行一下转码就好了

    array_iconv这个函数就是作为转码使用

    输出结果

     这是未转码的

    这是经过转码的

    直接调用函数传值进去就行

     
  • 相关阅读:
    Linux文件系统命令 cd
    Linux文件系统命令 cat
    正则表达式(.+?)与(.+)区别
    Linux文件系统命令 ls
    如何正确认识Docker Kubernetes 和 Apache Mesos
    基于Nutch Solr等基于搭建一体化的数据抓取平台
    ubuntu apache ssl配置
    机器学习入门
    docker 安全性问题
    数据工程师面试必备——Python与数据库的那些事
  • 原文地址:https://www.cnblogs.com/lcxin/p/14458409.html
Copyright © 2020-2023  润新知