ZXing扫描二维码出现中文乱码的问题
最近项目的功能需要用到扫描二维码.就参考了google的开源项目ZXing..功能完成后..发现扫条形码没有问题..但是扫描二维码的时候却有一部分是乱码..或者不是中文的问题..于网上参考了很资料.但效果还是不太理想..后来发现只要以ISO-8859-1的格式来编码,取出结果再进行相应的转换..问题就解决了.并不需要修改源码:以下是修改的方法

第一:先在CaptureActivity类中设置它的默认编码
 
[java] view plaincopy
decodeFormats = null;  
characterSet = "ISO-8859-1";

第二:你在取回结果的Activity中转换相应的编码.这里我是在ResultActivity类里作处理的
[java] view plaincopy
public class ResultActivity extends Activity implements OnClickListener{  
  
    private TextView dec_result;  
    private String resultStr;  
    private ImageView codeImage;  
    private Button returnChoujiang,returnJubao;  
    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        // TODO Auto-generated method stub  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.dec_result);  
        init();  
        dec_result=(TextView)findViewById(R.id.dec_result);  
        codeImage=(ImageView)findViewById(R.id.code_image);  
        Intent intent=getIntent();  
        resultStr=intent.getStringExtra("result");  
        String UTF_Str="";  
        String GB_Str="";  
        boolean is_cN=false;  
        try {  
            System.out.println("------------"+resultStr);  
            UTF_Str=new String(resultStr.getBytes("ISO-8859-1"),"UTF-8");  
            System.out.println("这是转了UTF-8的"+UTF_Str);  
            is_cN=IsChineseOrNot.isChineseCharacter(UTF_Str);  
            //防止有人特意使用乱码来生成二维码来判断的情况  
            boolean b=IsChineseOrNot.isSpecialCharacter(resultStr);  
            if(b){  
                is_cN=true;  
            }  
            System.out.println("是为:"+is_cN);  
            if(!is_cN){  
                GB_Str=new String(resultStr.getBytes("ISO-8859-1"),"GB2312");  
                System.out.println("这是转了GB2312的"+GB_Str);  
            }  
        } catch (UnsupportedEncodingException e) {  
            // TODO Auto-generated catch block  
            e.printStackTrace();  
        }  
          
          
        Bitmap bm=intent.getParcelableExtra("IMG_return");  
        if(is_cN){  
            dec_result.setText(UTF_Str);  
        }else{  
            dec_result.setText(GB_Str);  
        }  
        codeImage.setImageBitmap(bm);  
          
        returnChoujiang.setOnClickListener(this);  
        returnJubao.setOnClickListener(this);  
    }

第三:以下就是判断是否在Unicode编码里
[java] view plaincopy
public class IsChineseOrNot {  
      
    public static final boolean isChineseCharacter(String chineseStr) {    
        char[] charArray = chineseStr.toCharArray();    
        for (int i = 0; i < charArray.length; i++) {       
            //是否是Unicode编码,除了"�"这个字符.这个字符要另外处理  
            if ((charArray[i] >= '\u0000' && charArray[i] < '\uFFFD')||((charArray[i] > '\uFFFD' && charArray[i] < '\uFFFF'))) {    
                continue;  
            }  
            else{  
                return false;  
            }  
        }    
        return true;    
    }    
      
    public static final boolean isSpecialCharacter(String str){  
        //是"�"这个特殊字符的乱码情况  
        if(str.contains("�")){  
            return true;  
        }  
        return false;  
    }  
}

最后这样就解决了ZXing的中文乱码问题.

(转载)[Android开发]zxing扫描结果乱码的更多相关文章

  1. Android开发——通过扫描二维码,打开或者下载Android应用

    Android开发——通过扫描二维码,打开或者下载Android应用   在实现这个功能的时候,被不同的浏览器折磨的胃疼,最后实现了勉强能用,也查考了一下其他人的博客 android实现通过浏览器点击 ...

  2. [置顶] xamarin android使用zxing扫描二维码

    好久没写了,这片文章篇幅不长,概述一下在xamarin android中用 ZXing.Net.Mobile库扫描二维码读取url的示例.扫码支付,扫码登录,App上各种各样的扫码,好像没个扫码的就有 ...

  3. [转载]Android开发必备的21个免费资源和工具

    转载自: http://blog.csdn.net/shimiso/article/details/6788375 Android移动开发平台现在不是一个“火”字能形容的,今年Android平台在市场 ...

  4. Android开发之扫描二维码开发

    原贴地址:http://www.cnblogs.com/Fndroid/p/5540688.html 二维码其实有很多种,但是我们常见的微信使用的是一种叫做QRCode的二维码,像下面这样的,可以放心 ...

  5. Android开发之扫描附近wifi热点并列表显示

    近期项目中用到了wifi模块.今天做一个简单的总结. 參考:http://www.2cto.com/kf/201310/253617.html 1.如何获取wifi对象并进行操作 要操作WIFI设备, ...

  6. [转载]Android开发常用调试技术记录

    ANDROID 调试技术: 1)Ps 指令 ls –l /proc/27/ cat /proc/27/cmdline       #cmdline文件表示了这个进程所在的命令行. cat /proc/ ...

  7. Android 开发笔记-Eclipse中文乱码

    使用eclipse时经常中文乱码网上搜罗了下解决办法:   使用Eclipse编辑文件经常出现中文乱码或者文件中有中文不能保存的问题,Eclipse提供了灵活的设置文件编码格式的选项,我们可以通过设置 ...

  8. Android自定义zxing扫描界面的实现

    首先,我们需要导入zxing的jar文件,其次复制所需要的资源文件以及放入自己需要添加的资源文件,复制出源码的必要相关类文件.对布局文件进行一定的修改,再修改CaptureActivity与Viewf ...

  9. [转载]Android相关开发网站

    my: Android 开发官方文档国内镜像-踏得网: http://wear.techbrood.com/index.html 转载自: http://my.oschina.net/luforn/b ...

随机推荐

  1. [实例]ROS使用OpenCV读取图像并发布图像消息在rviz中显示

    思路: (1)使用opencv读取本地图像 (2)调用cv_bridge::CvImage().toImageMsg()将本地图像发送给rviz显示 一.使用opencv读取本地图像并发布图像消息 ( ...

  2. windows下安装ImageMagick扩展

    最近项目中需要用到图片的一些特殊处理——比如:根据用户请求生成任意尺寸的图像.经过一些资料的查找,最终选用了php_imagick.利用 ImageMagick,你可以根据web应用程序的需要动态生成 ...

  3. C#6.0新增功能

    C# 6.0 版本包含许多可提高开发人员工作效率的功能. 此版本中的功能包括: 只读自动属性: 可以创建只能在构造函数中设置的只读自动属性. 自动属性初始值设定项: 可以编写初始化表达式来设置自动属性 ...

  4. jmeter的认识——线程组的认识

    名称:可以给线程组设置一个个性化的命名 注释:可以对线程组添加备注以标记 在取样器错误后要执行的动作:就是在错误之后要如何执行,可选继续执行后续的.停止执行等. 线程数:就是需要设置多少线程执行测试. ...

  5. iOS 11 APP 设计中的几个 UI 设计细节

    Apple 官网看了 iOS 11 的介绍,发现有不少的更新哦,比如控制中心.Siri.Live Photo 等等,总体来说都有很多不错的体验,不过本文不介绍功能,只说视觉界面. 在 iOS 11 的 ...

  6. 列表查询组件代码, 简化拼接条件SQL语句的麻烦

    列表查询组件代码, 简化拼接条件SQL语句的麻烦 多条件查询

  7. iOS性能优化未阅文章归档

    https://www.aliyun.com/jiaocheng/349583.html https://www.2cto.com/kf/201706/648929.html 理解UIView的绘制 ...

  8. ZBrush软件Texture纹理调控板

    在zbrush4r8中对一个模型进行纹理制作在速度和易用性方面有诸多优势,通过Texture调控板创建.导入和输出纹理是及其方便且快捷的. Import (导入):导入Photoshop (.psd) ...

  9. JS - 浅拷贝与深拷贝的理解以及简单实现方法

    前几天撸项目代码时, 由一个技术点间接牵扯出了这东西. 所以就来总结一下. 深拷贝 拷贝对象每个层级的属性. 作用的对象是 js中引用类型的对象,基本类型没有涉及. 本质上将引用类型的对象在堆上重新开 ...

  10. python_函数传递列表

    '''#创建一个空列表,包含一些要打印的设计unprinted_designs = ['iphone','robot','books']completed_modles = [] #模拟打印每个设计, ...