解决json_encode中文被编码成 null的办法

发布时间:2019-08-28作者:小灵龙点击:122

问题描述:

在使用json_encode函数时,无奈的发现中文被编码成null了。原来json只支持转义utf-8编码格式的中文。php数组使用json_encode函数中文被编码成null的原因是转义gbk 或者别的编码时,中文被忽略了。一般出现在文档编码或者输出的内容编码是非UTF-8时,也就是说,GBK或者GB2312的中文,就会出现编码失败的现象。


解决办法:

<?php

$arr = array

(

‘Name’=>’希亚’,

‘Age’=>20

); $jsonencode = json_encode($arr);

echo $jsonencode;

?>

程序运行结果如下:

{“Name”:null,”Age”:20}
json_encode 函数中中文被编码成 null 了,Google 了一下,很简单,为了与前端紧密结合,Json 只支持 utf-8 编码,我认为是前端的 Javascript 也是 utf-8 的原因。



$array = array

(

‘title’=>iconv(‘gb2312′,’utf-8′,’这里是中文标题’),

‘body’=>’abcd…’

); echo json_encode($array);

?>

这个程序的运行结果为:



{“title”:”\u8fd9\u91cc\u662f\u4e2d\u6587\u6807\u9898″,”body”:”abcd…”}


标签:json_encode,中文null