zBar解码中文乱码

对于zBar解码中文,网上都有对应解决方法。这里只是总结补充说明。

网上搜到的方法包括:

1: 修改识别说明,把“ISO8859-1” 改为“GB18030”等;

zBar解码中文乱码_第1张图片

2: 修改使用识别顺序:

zBar默认使用首先sjis(日文)识别。[毕竟zBar是岛国出品]


3: 对于识别结果,如果能转为NSShiftJISStringEncoding的,那么就对应转成NSShiftJISStringEncoding。

for (ZBarSymbol * symbol in results){
        
        str =  symbol.data;
        if (symbol.type == ZBAR_QRCODE) {

            if ([symbol.data canBeConvertedToEncoding:NSShiftJISStringEncoding]) {
                
                str = [NSString stringWithCString:[symbol.data cStringUsingEncoding: NSShiftJISStringEncoding] encoding:NSUTF8StringEncoding];
                
            }
        }
        
         
        
        break;
        
    }


而对于部分中文确实是使用第一种方法就可以解决,比如:

zBar解码中文乱码_第2张图片zBar解码中文乱码_第3张图片

这样改后,我的问题还是没能解决,在第一和第二方法都未能解决,但是第三可以解决。

我的二维码是车牌作为内容,比如:粤B8888



你可能感兴趣的:(zBar解码中文乱码)