您的位置:首页 > 编程语言 > PHP开发

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

2017-04-21 11:31 591 查看
大写的囧,提客户处理问题,前端的APP一直在叽叽咂咂,说收到的值是null,弄了半天原来是这个问题,记录下吧

json格式在开发中用的十分广泛。在php中json_encode函数可以直接将数组转成 json格式,十分方便。但是有可能你在使用json_encode函数时,无奈的发现中文被编码成null了。原来json只支持转义utf-8编码格式的中文。php数组使用json_encode函数中文被编码成null的原因是转义gbk 或者别的编码时,中文被忽略了。一般出现在文档编码或者输出的内容编码是非UTF-8时,也就是说,GBK或者GB2312的中文,就会出现编码失败的现象。

php数组使用json_encode函数中文被编码成null的原因和解决办法,如果你的程序是采用utf-8编码,请确保文件保存为utf-8 无bom格式,如果你的程序是gbk的,可以先转成utf-8编码后在使用json_encode函数。

知道了这一点,以下的代码就好写了。这里给出一个Demo,备忘。

$array = array('title'=>iconv('gb2312','utf-8','这里是中文标题'),'body'=>'abcd...');

echo json_encode($array);

编码以后的内容就成了这样:

{"title":"u8fd9u91ccu662fu4e2du6587u6807u9898","body":"abcd..."}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: