zxing乱码解决

zxing的乱码,网上有好些文章,能用的很少,有的说修改zxing源码,麻烦,没有必要。而其他办法又存在解决了一种字符,另外的字符编码又是乱码。我经过反复尝试,取得成功。现分享给大家

其实很简单。


1、CaptureActivity

中声明的private String characterSet;注意,不是不要像又的文章说的指定编码。

2、获取的String做处理。


甲:首先判断是什么类型

boolean ISO = Charset.forName("ISO-8859-1").newEncoder()  
                   .canEncode(name);   

乙: if (ISO)  {
   Boolean b = isChineseCharacter(name);
               name = new String(name.getBytes("ISO-8859-1"), "GB2312");



public static final boolean isChineseCharacter(String chineseStr) {    
        char[] charArray = chineseStr.toCharArray();    
        for (int i = 0; i < charArray.length; i++) {       
            
            if ((charArray[i] >= '\u0000' && charArray[i] < '\uFFFD')||((charArray[i] > '\uFFFD' && charArray[i] < '\uFFFF'))) {    
                continue;  
            }  
            else{  
                return false;  
            }  
        }    
        return true;    
    }    


你可能感兴趣的:(android)