推荐安卓开发神器(里面有各种UI特效和android代码库实例)
最近项目的功能需要用到扫描二维码.就参考了google的开源项目ZXing..功能完成后..发现扫条形码没有问题..但是扫描二维码的时候却有一部分是乱码..或者不是中文的问题..于网上参考了很资料.但效果还是不太理想..后来发现只要以ISO-8859-1的格式来编码,取出结果再进行相应的转换..问题就解决了.并不需要修改源码:以下是修改的方法
第一:先在CaptureActivity类中设置它的默认编码
- decodeFormats = null;
- characterSet = "ISO-8859-1";
第二:你在取回结果的Activity中转换相应的编码.这里我是在ResultActivity类里作处理的
- 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编码里
- 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的中文乱码问题.
相关推荐
这是Zxing的源码,没有打包成jar利于学习使用。 使用时注意path的默认地址,Main类中是生成二维码的代码,GetMain类中是读取二维码的代码。 eclipse中Ctrl+Shift+R快速查找类 希望对你有所帮助。
zxing中扫瞄二维码图片,如果包含Gbk中文,乱码解决办法是修改DecodedBitStreamParser.h文件,在里面加入GBK的判断。 在2.1版本中,解码的定义不在这个类中了,挪到了StringUtils类中,所以需要修改这个类,在修改...
解决zxing二维码pdf417中文乱码问题 编译.net 2.0 4.0
使用zxing扫描二维码时会出现中文乱码问题,找很久发现是zxing不支持gbk编码,所以把zxing.jar中的解码类做下修改,现在将修改后的java文件提供给大家。
1.详细的Demo 可正常扫描 2.zxing框架代码已简化,只保留了核心代码 ...2.包含zxing的核心包(中文乱码问题已处理) 3.有详细的扫描调用方法及说明 4.有详细的项目集成方法及说明 5.不明白可以直接看Demo
通常我们做二维码用qrcode.js的时候会出现中文乱码这个情况,只是因为本身qrcode.js这个包没有编译中文,现在调用utf16to8.js可以解决这个问题啦!经过本人测试时没问题的,如果有问题,可以私信联系我的!
基准环境:Android studio 3.1.3 gradle:4.4 通过将资源库图片转化为Bitmap,使用Zxing的接口完成二维码识别。
zxing二维码扫描 修复了中文乱码问题
android二维码扫描开发,本资源使用Google的ZXing包,代码已简化,只保留了需要用到的类,和核心类包,中文乱码问题已经处理.里面有详细的使用教程,欢迎下载使用
对gbk编码汉字的识别后是乱码,对utf-8编码的汉字可识别,部分二维码不能识别。 希望此代码对使用C#开发摄像头和二维码应用的人有用。 如果希望将解码信息发送到指定服务器,有服务器端处理信息的请留言。
Zxing是一个开源的用Java实现的多种格式的1D/2D条码图像处理库,它包含了连接到其他语言的...经测试支持中文内容,扫码不会出现中文乱码,在项目中只需导入该jar包即可运行二维码功能实现演示类ZXingCodeDemo.java。
:person_running:BGAQRCode-Android:person_running: 目录 功能介绍 根据的产品需求,参考 改的,希望能... ZBar 扫描条码、二维码「已解决中文乱码问题」 ZBar 识别图库中的条码、二维码图片 常见问题 1.部分手机无
基于google的Zxing的扫描器(二维码、条形码),并解决中文乱码的问题
:person_running: BGAQRCode-Android :person_running: ... ZBar扫描条码,二维码「已解决中文乱码问题」 ZBar识别图库中的条码,二维码图片 常见问题 1.部分手机无法扫描出结果,扫描预览界面二维码被压缩
logo 的二维码ZXing 扫描二维码ZXing 识别图库中的二维码图片可以设置用前置摄像头扫描可以控制闪光灯,方便夜间使用可以定制各式各样的扫描框ZBar 扫描二维码「扫描中文会有乱码,如果对中文有要求,请使用 ZXing」...
支持二维码和条形码的扫描工具库,方便的实现扫码...可定制各式各样的扫描框,可定制全屏扫描,可定制要识别的码的格式,可以控制闪光灯,方便夜间使用,zxing二维码扫描功能, ZBar 扫描条码、二维码「已解决中文乱码问题」
在条码,二维码项目中,有部分中文不能识别,是乱码,把zxing.jar移除,然后把core.jar导入到项目中,就可以识别中文了。
提供Android 的中文乱码解决 提供从相册获取二维码照片解析 横屏切换为竖屏 提供闪光灯功能
经网友反映,还是有些中文会出现解码成乱码,而有些又可以,估计还是guessEncoding方法猜测编码出现了偏差,直接将guessEncoding方法写成返回UTF8就行了。 4.实现图片解码,即把条形码或二维码图片解码成其真实内容...