二维码中文乱码问题解决

二维码扫描出来的信息,有的中文是乱码,zxing没有解决这个问题,就比如百度搜二维码,搜到的百度百科里那个二维码,扫出来就有乱码。

二维码中文乱码问题解决_第1张图片


以前看过一篇帖子,说中文乱码用GB2312转码

new String(obj.getText().getBytes("ISO-8859-1"), "GB2312");

转完之后中文确实能正确显示


二维码中文乱码问题解决_第2张图片


但是再试一下用我查查生成的二维码,发现又出现乱码了。


二维码中文乱码问题解决_第3张图片


原因好像是我查查生成二维码的时候就是用的UTF-8编码,这个我不确定,关于编码什么的也不太懂,我打印日志看了一下


String code = new String(obj.getText().getBytes("ISO-8859-1"), "GB2312");
String utf8 = new String(obj.getText().getBytes("ISO-8859-1"),
"UTF-8");


把结果分别用GB2312和UTF-8转码,我查查生成的二维码不用转码,中文就是正常的,这样一转,两个结果都是乱码,并且是一样的。

而百度二维码那个,扫出来结果是乱码,用GB2312转码后,中文正常了,而用UTF-8转码还是乱码。

所以,对于这两个结果,我是这么处理的:

if (code.equals(utf8)) {
code = obj.getText();
}


然后返回code,这样两个码都能返回正常的中文了。

二维码中文乱码问题解决_第4张图片

不知道还有没有其他编码格式生成的二维码,有待测试,如果还有其他的话,这种办法就不行了。

你可能感兴趣的:(二维码中文乱码问题解决)