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

这种情况,一般出现在文档编码或者输出的内容编码是非UTF-8时,也就是说,GBK或者GB2312的中文,就会出现编码失败的现象。

Google了一下,很简单,为了与前端紧密结合,Json只支持Utf-8编码,我认为是前端的Javascript也是Utf-8的原因。

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

$array = array('title'=>iconv('gb2312','utf-8','这里是中文标题'),'body'=>'abcd...');
echo json_encode($array);
编码以后的内容就成了这样:
{"title":"\u8fd9\u91cc\u662f\u4e2d\u6587\u6807\u9898","body":"abcd..."}

Json学习日志(一):深入浅出谈JSON

JSON定义

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和生成。它基于ECMA262语言规范(1999-12第三版)中JavaScript编程语言的一个子集。 JSON采用与编程语言无关的文本格式,但是也使用了类C语言(包括C, C++, C#, Java, JavaScript, Perl, Python等)的习惯,这些特性使JSON成为理想的数据交换格式。

继续阅读Json学习日志(一):深入浅出谈JSON