最近项目的功能需要用到扫描二维码.就参考了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) {
-
-
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) {
-
-
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++) {
-
-
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二维码pdf417中文乱码问题 编译.net 2.0 4.0
ZXing 2.1版GBK中文乱码解决办法: zxing中扫瞄二维码图片,如果包含Gbk中文,乱码解决办法是修改DecodedBitStreamParser.h文件,在里面加入GBK的判断。 在2.1版本中,解码的定义不在这个类中了,挪到了...
解决zxing扫描中文乱码的问题 下载后可以直接使用这个demo里面的zxing 不需要再去下源码 然后重新删除
这是Zxing的源码,没有打包成jar利于学习使用。 使用时注意path的默认地址,Main类中是生成二维码的代码,GetMain类中是读取二维码的代码。 eclipse中Ctrl+Shift+R快速查找类 希望对你有所帮助。
通常我们做二维码用qrcode.js的时候会出现中文乱码这个情况,只是因为本身qrcode.js这个包没有编译中文,现在调用utf16to8.js可以解决这个问题啦!经过本人测试时没问题的,如果有问题,可以私信联系我的!
提供Android 的中文乱码解决 提供从相册获取二维码照片解析 横屏切换为竖屏 提供闪光灯功能
使用开源ZXing扫描的缺点 1、原始代码是横屏模式,尽管可以改成竖屏,但是扫描界面的自定义和多屏幕适配不好做 2、有效扫描区域不好控制,可能是我自己技术不成熟,没找到好方法 3、ZXing是Java写的,对二维码的解析...
基于google的Zxing的扫描器(二维码、条形码),并解决中文乱码的问题
:person_running:BGAQRCode-Android:person_running: 目录 功能介绍 根据的产品需求,参考 改的,希望能... ZBar 扫描条码、二维码「已解决中文乱码问题」 ZBar 识别图库中的条码、二维码图片 常见问题 1.部分手机无
:person_running: BGAQRCode-Android :person_running: ... ZBar扫描条码,二维码「已解决中文乱码问题」 ZBar识别图库中的条码,二维码图片 常见问题 1.部分手机无法扫描出结果,扫描预览界面二维码被压缩
Zxing项目里的Android实现太过复杂多余东西太多,得对其进行简化。本代码完成了部分中文注释。而且实现了竖屏扫描,解决了竖屏屏幕拉伸的问题。经过手机测试完全可用。
首先说一下目前大家常用的方法的不足吧:一、 使用开源Zxing扫描1、原始代码是横屏模式,尽管可以改成竖屏,但是扫描界面的自定义和多屏幕适配不好做2、有效扫描区域不好控制,可能是我自己技术不成熟,没找到好方法...
8,但是还是有同样的问题,后面就找zxin的源码发现,在jar包里面默认的编码有问题,有兴趣的朋友可以在这里下载zxing的源码,http://code.google.com/p/zxing/ 不是采用utf-8,这样问题就得以解决,布局很简单如下图...
该项目主要是基于ZBar开源项目,在Android平台进行二维码扫描的功能,其中解决了中文乱码问题,添加的扫描框,具体可以查看博客 http://blog.csdn.net/skillcollege
条形码扫描和识别程序 LVBarcode LVBarcode 支持下列的条形码格式:Codabar,I2of5,Code39,ExCode39?,EAN-8,EAN-13,Code128 A,Code128 B,Code128 C,MSI,UPC-A,UPC-E. 中文转拼音库 pinyin4j Pinyin4j是一个流行的...
条形码扫描和识别程序 LVBarcode LVBarcode 支持下列的条形码格式:Codabar,I2of5,Code39,ExCode39?,EAN-8,EAN-13,Code128 A,Code128 B,Code128 C,MSI,UPC-A,UPC-E. 中文转拼音库 pinyin4j Pinyin4j是一个流行的...
条形码扫描和识别程序 LVBarcode LVBarcode 支持下列的条形码格式:Codabar,I2of5,Code39,ExCode39?,EAN-8,EAN-13,Code128 A,Code128 B,Code128 C,MSI,UPC-A,UPC-E. 中文转拼音库 pinyin4j Pinyin4j是一个流行的...
条形码扫描和识别程序 LVBarcode LVBarcode 支持下列的条形码格式:Codabar,I2of5,Code39,ExCode39?,EAN-8,EAN-13,Code128 A,Code128 B,Code128 C,MSI,UPC-A,UPC-E. 中文转拼音库 pinyin4j Pinyin4j是一个流行的...
条形码扫描和识别程序 LVBarcode LVBarcode 支持下列的条形码格式:Codabar,I2of5,Code39,ExCode39?,EAN-8,EAN-13,Code128 A,Code128 B,Code128 C,MSI,UPC-A,UPC-E. 中文转拼音库 pinyin4j Pinyin4j是一个流行的...
条形码扫描和识别程序 LVBarcode LVBarcode 支持下列的条形码格式:Codabar,I2of5,Code39,ExCode39?,EAN-8,EAN-13,Code128 A,Code128 B,Code128 C,MSI,UPC-A,UPC-E. 中文转拼音库 pinyin4j Pinyin4j是一个流行的...