我在ajax请求的时候后端返回数据是return json($data)时,报错:Malformed UTF-8 characters, possibly incorrectly encoded。
原因:数组中存在非UTF-8的字符。
data为一个数组无法直接mb_convert_encoding。json_encode,base_encode都无法转换
解决方案:
/**
* 数据中存在特殊字符无法直接json编码,先序列化字符
* 再转码,转码后反序列化最后json编码
*/
// data为一个数组无法直接mb_convert_encoding。json_encode,base_encode都无法转换
$data = serialize($data);
$data = mb_convert_encoding($data, 'UTF-8', 'UTF-8,GBK,GB2312,BIG5' );
$data = unserialize($data);
return json($data);
到此文章就结束了,有什么疑问大家可以留言@我