袁来如此的工作笔记
袁来如此的工作笔记
竹杖芒鞋轻胜马,谁怕? 一蓑烟雨任平生。

json_encode错误调试,json_last_error返回5

浏览量:179

对一个数组进行json_encode(),结果报错根据php手册,json_last_error()返回 JSON 编码解码时最后发生的错误。随即用json_last_error()捕获错误码为5,即JSON_ERROR_UTF8异常:

JSON_ERROR_UTF8 异常的 UTF-8 字符,也许是因为不正确的编码。 

大概明白要处理的数组里含有非UTF-8 字符导致的。这样处理起来就简单了。

写个递归处理函数,将数组中的项进行转码即可。

/**
	*函数:m_mb_convert_encoding($string) $string要转码的字符串或数组
	*功能:对字符串或数组进行mb_convert_encoding转码
*/ function m_mb_convert_encoding($string) { if(!is_array($string) && !is_int($string)) { return mb_convert_encoding($string, 'UTF-8', 'UTF-8');
	} foreach($string as $key => $value) {
		$string[$key] = m_mb_convert_encoding($value);
	} return $string;
} 

json_encode()时,用该函数先对要json的数组进行处理即可。

<?php echo json_encode(m_mb_convert_encoding($_arr));

打赏