不晓得各位遇到下面的情况如何处理,请看红框里输出的部分已知编码格式,但是输出到控制台和展示到界面上的都是那种乱码,看上去好像是ascii码
解决方案 »
- 请问关于在Android程序中调用外部动态链接库的问题
- 在data/local/下createNewFile()遇到没有权限的异常,怎么解决这个问题?谢谢!
- 跳转时背景音乐怎么关闭?
- 控件置于屏幕底部的布局
- 电脑联网的情况下,如何使用sdk中的离线api文档
- 如何在不root机器的情况下给应用程序root权限?
- Android 拍照 图片 颠倒90度
- 请问, sendFile函数中,红色这一段代码是不是相当于线程,执行sendFile函数时,红色的代码在后台运行
- android
- MTK 6753 camera 预览帧率不够
- android联系人应用如何调到数据库操作的?
- 求一个android sdk 下载地址
然后通过设置Typeface,也可以正常显示了。
我之前用的方法如下,不知有何问题:
String newStr = new String(oldStr.getByte("iso-8859-1"), "UTF-8");
这种方式在数据库中的数据为1楼中的乱码时可以正常转码。但如果数据库中时正常汉字字符的话就会变成1楼看到的乱码。但是通过各种编码格式工具的判断,两种情况都是UTF-8,没办法做差异判断
CharacterSets.java (frameworks\frameworks\base\core\java\com\google\android\mms\pdu)
这是彩信里显示主题时用的方法,在MesageItem.java这个类里
EncodedStringValue v = new EncodedStringValue(
cursor.getInt(columnsMap.mColumnMmsSubjectCharset),//字符格式
PduPersister.getBytes(subject));//数据库里的乱码文本
mSubject = v.getString();//真实的文本
试试看能不能解决你的问题。
解决方式如下:
boolean isISO = java.nio.charset.Charset.forName(ENCODE_ISO88591).newEncoder().canEncode(sub);
这个API以前几乎没用过,所以不知道,还是在网上查的,判断一下sub字符串是否能够使用给定的编码格式编码,然后用得到的boolean值去做判断