1.对于中文二维码的支持经常出现乱码。ZBar缺省支持 SHIF-JIS, UTF-8, ISO8859-1,但是不支持GBK,而很多生成的二维码都是 GBK (或者 GB18030, GB2312)
路径: zbar/qrcode/qrdectxt.c
第62 行 改为
/*This is the encoding the standard says is the default.*/
latin1_cd=iconv_open("UTF-8","GBK");
然后重新编译 生成libzbar.a文件 于你源程序替换
2. ZBarSymbol *symbol =nil;
for(symbolin results) {
}
//处理部分中文乱码问题
// symbol.data 如果是纯乱码 就能走下面方法! 但是不是纯乱码 不会走下面方法! 建议分割字符串去判断转码
if ([symbol.datacanBeConvertedToEncoding:NSShiftJISStringEncoding])
{
symbol.data = [NSStringstringWithCString:[symbol.datacStringUsingEncoding: NSShiftJISStringEncoding]encoding:NSUTF8StringEncoding];
}