对数组内容使用了json_encode返回汉字内容返回了空值

Posted ALonely

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对数组内容使用了json_encode返回汉字内容返回了空值相关的知识,希望对你有一定的参考价值。

如果使用json_encode对数组进行转成JSON字符串时候,发现汉字的全部为空,这样可以说明的一点是你的页面上用的一定不是UTF8编码,在php手册中对json_encode中待编码的值已经说明所有字符串的编码必须是UTF-8;

所以如果你的页面不是UTF-8编码的话,就需要将你的数组内容转码,具体怎么转码?下面例如你的页面是使用GBK编码的:

function Gbk2Utf8($data){
	if(is_array($data)){
		foreach($data as $key => $value){
			$data[$key]=call_user_func(__FUNCTION__,$value);
		}
		return $data;
	}
	return iconv("gbk","utf-8",$data);
}

 

以上是关于对数组内容使用了json_encode返回汉字内容返回了空值的主要内容,如果未能解决你的问题,请参考以下文章

json_encode如何防止汉字转义成unicode

PHP Json_encode() 空数组时,返回 [] 与 {} 的问题

如果之前未访问过数组,json_encode 返回 null

PHP json_encode将行作为对象而不是数组返回[重复]

PHP json_encode 不转义中文汉字的方法

PHP数组到JSON数组使用json_encode();