php json转数组提示null,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这个函数就是作为转码使用

输出结果

d2cdedee0d923f6dc903b06eb1597dc2.png

710952bb9004dd7cde2a1b37d26cbd3d.png

这是未转码的

这是经过转码的

88587c38a1aa33195d716fa69aaabf24.png

00c5ea0f095ae8930dc628977b6c7cd4.png

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

标签:iconv,name,转码,charset,json,encode,格式,null

来源: https://www.cnblogs.com/lcxin/p/14458409.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值