android扫一扫 二维码显示结果中文乱码
来源:互联网 发布:盐城软件开发培训 编辑:程序博客网 时间:2024/05/14 15:01
最近再做一个android扫码器,虽然在网上找到了google Zxing扫码器,但是中文乱码,下面的方法完美的解决了我的问题
原址:[http://blog.csdn.net/yu413854285/article/details/7061462]
第一:先在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; }}
0 0
- android扫一扫 二维码显示结果中文乱码
- MySQL命令行查询结果中文显示乱码
- MySQL命令行查询结果中文显示乱码
- 解决mysql查询结果中文显示乱码
- MySQL命令行查询结果中文显示乱码
- TestNG运行结果中文显示乱码、Junit中文显示正常
- android zbar二维码扫描(中文不乱码)
- 二维码中文乱码问题解决
- PHP连接MySQL查询结果中文显示乱码问题
- python mysql中查询数据,结果中文显示乱码
- jmeter-察看结果树-响应数据中的中文显示乱码
- jmeter-察看结果树-响应数据,中文显示乱码
- PHP连接MySQL查询结果中文显示乱码解决方法
- MySQL控制台显示结果的中文字符会出现乱码
- jmeter-察看结果树-响应数据中的中文显示乱码
- jmeter-察看结果树-响应数据中的中文显示乱码
- Android Studio 模拟器中文显示乱码解决方案
- redis显示中文结果
- Swift学习笔记之基本数据类型-数组与字典
- 浅析ADO.NET五大对象
- Oracle SQL Developer 打开无法使用的问题
- 百度地图开发中可能出现的问题
- ios上视频与音乐合成后出现播放兼容问题的解决方法
- android扫一扫 二维码显示结果中文乱码
- Android中weight 出现权重大但是所占的比例小问题
- jsp <c:forEach>循环 以及怎么统计变量的总数量
- java final 修饰符
- Codeforces--658C--Bear and Forgotten Tree 3(模拟&&技巧)(好题)
- __declspec的英文含义
- shell脚本学习笔记(符号)
- Struts2源码分析(三) 绘制Struts2执行的核心流程时序图并分析
- 剑指offer之替换字符串中的空格