zoukankan      html  css  js  c++  java
  • 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这个函数就是作为转码使用

    输出结果

     这是未转码的

    这是经过转码的

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

     
  • 相关阅读:
    MCS-51系列单片机和MCS-52系列单片机有何异同
    51单片机指令表
    ROM、PROM、EPROM、EEPROM、Flash ROM分别指什么?
    用最简单的办法轻松区分无源晶振和有源晶振
    CE310A
    夏普sharp复印机安装视频及教导
    SHARP AR-2048D/2348D
    SHARP 加粉1
    SHARP 加粉
    SQL SERVER BOOK
  • 原文地址:https://www.cnblogs.com/lcxin/p/14458409.html
Copyright © 2011-2022 走看看