我使用的是libZbar,当我解码哪些QR包含中文(GBK字符)时,它解码QR代码是快速的,但是当解码包含汉语的QR (UTF-8)时,它会返回错误语言在这里输入图像描述。
这是QR内容“EXij EXij/!:;EXij 0008”,但当我使用EXij解码时,它显示的是“蠅ィ豌エ螂ス螟哘Xij/!:;EXij 0008”,我找到了“EXij.”->“Xij.”然后,我检查了一些处理这个问题的方法,我检查了libZbar源代码/zbar-0.10/zbar/qrcode/qrdectxt.c,他们都修改了这个代码it 8859-1 -> GB18030或GB2312,但是它帮不了我。
/*This is the encoding the standard says is the default.*/
latin1_cd=iconv_open("UTF-8","ISO8859-1");
/*But this one is often used, as well.*/
sjis_cd=iconv_open("UTF-8","SJIS");
/*This is a trivial conversion just to check validity without extra code.*/
utf8_cd=iconv_open("UTF-8","UTF-8");我的程序是在linux上运行的,正常的中文(utf-8)显示得很好,Zbar已经将utf8编码的内容转换成其他的编码格式。这不是我需要的步骤,但我不能评论整个代码。我能做什么?
发布于 2022-01-04 02:51:10
我用Qt构建了一个c项目,然后由step.this qr代码进行调试,它不包含utf8标志,因此它将使用enc_list来处理文本,首先更改enc_list[] utf8_cd ->的索引。
enc_list[2]=sjis_cd; enc_list[1]=latin1_cd; enc_list[0]=utf8_cd;
if(inleft>=3&&in[0]==(char)0xEF&&in[1]==(char)0xBB&&in[2]==(char)0xBF)
{
in+=3;
inleft-=3;
}https://stackoverflow.com/questions/70516540
复制相似问题