PHP Warning: json_encode(): Invalid UTF-8 sequence in argument in

时间:2023-01-05 22:17:33
如题,

$vlaue是需要用json_encode()转换,里面包含有中文。执行后全是null,

然后,在网上面找了一些资料,在前面加上下面一句:
$value = mb_check_encoding($value, 'UTF-8') ? $value : utf8_encode($value);

结果不报错了,但是网页打开的却是乱码。

应该如何处理这个情况?

6 个解决方案

#1


utf8_encode 是不行的
要用 mb_convert_encoding 

#2


用header指定下浏览器编码看看,页头加上:
header("content-type:text/html;charset=utf-8");

#3


引用 2 楼 jordan102 的回复:
用header指定下浏览器编码看看,页头加上:
header("content-type:text/html;charset=utf-8");


我在php里面加header("content-type:text/html;charset=utf-8");,或是在html里面加<meta charset="utf-8" />
效果都一样。。

#4


引用 1 楼 xuzuning 的回复:
utf8_encode 是不行的
要用 mb_convert_encoding 


$value = mb_check_encoding($value, 'UTF-8') ? $value : mb_convert_encoding($value, 'UTF-8');
我换成这个还是和一样一样,

执行php xxx.php得到的结果是:
\u00c6\u00e4\u00cb\u00fb\u00d3\u00a6\u00d3\u00c3

#5


你真够可以的!
string mb_convert_encoding ( string str, string to_encoding [, mixed from_encoding] )

从 from_encoding 到 to_encoding
你没给 from_encoding 那不跟 utf8_encode 一样按字节转换吗?

对于中文,不是 utf-8 就是 gbk 了(*地区还有 big5)
怎么着也得 mb_convert_encoding($value, 'UTF-8', 'gbk') 吧

#6


引用 5 楼 xuzuning 的回复:
你真够可以的!
string mb_convert_encoding ( string str, string to_encoding [, mixed from_encoding] )

从 from_encoding 到 to_encoding
你没给 from_encoding 那不跟 utf8_encode 一样按字节转换吗?

对于中文,不是 utf-8 就是 gbk 了(*地区还有 big5)
怎么着也得 mb_convert_encoding($value, 'UTF-8', 'gbk') 吧


PHP Warning: json_encode(): Invalid UTF-8 sequence in argument in
谢谢了,确实应该加后面的那个参数。。 版主教训得是,主要是我学得太肤浅,没研究的太深。

#1


utf8_encode 是不行的
要用 mb_convert_encoding 

#2


用header指定下浏览器编码看看,页头加上:
header("content-type:text/html;charset=utf-8");

#3


引用 2 楼 jordan102 的回复:
用header指定下浏览器编码看看,页头加上:
header("content-type:text/html;charset=utf-8");


我在php里面加header("content-type:text/html;charset=utf-8");,或是在html里面加<meta charset="utf-8" />
效果都一样。。

#4


引用 1 楼 xuzuning 的回复:
utf8_encode 是不行的
要用 mb_convert_encoding 


$value = mb_check_encoding($value, 'UTF-8') ? $value : mb_convert_encoding($value, 'UTF-8');
我换成这个还是和一样一样,

执行php xxx.php得到的结果是:
\u00c6\u00e4\u00cb\u00fb\u00d3\u00a6\u00d3\u00c3

#5


你真够可以的!
string mb_convert_encoding ( string str, string to_encoding [, mixed from_encoding] )

从 from_encoding 到 to_encoding
你没给 from_encoding 那不跟 utf8_encode 一样按字节转换吗?

对于中文,不是 utf-8 就是 gbk 了(*地区还有 big5)
怎么着也得 mb_convert_encoding($value, 'UTF-8', 'gbk') 吧

#6


引用 5 楼 xuzuning 的回复:
你真够可以的!
string mb_convert_encoding ( string str, string to_encoding [, mixed from_encoding] )

从 from_encoding 到 to_encoding
你没给 from_encoding 那不跟 utf8_encode 一样按字节转换吗?

对于中文,不是 utf-8 就是 gbk 了(*地区还有 big5)
怎么着也得 mb_convert_encoding($value, 'UTF-8', 'gbk') 吧


PHP Warning: json_encode(): Invalid UTF-8 sequence in argument in
谢谢了,确实应该加后面的那个参数。。 版主教训得是,主要是我学得太肤浅,没研究的太深。