不晓得各位遇到下面的情况如何处理,请看红框里输出的部分已知编码格式,但是输出到控制台和展示到界面上的都是那种乱码,看上去好像是ascii码
解决方案 »
- 求助:一个android页面过长显示不下的问题
- 求助 android的listview控件的OnScrollListener的firstVisibleItem在滑动太快的时候监听不到 是因为什么原因
- 关于在android中使用sso(单点登录)
- tabHost在WVGA800时只显示一半
- 求一套超级马里奥游戏图片资源
- 今天写博格,文章中无法插入CODE代码片了,怎么回事?
- Eclipse的AVD小问题目
- 神了,webview下一个界面的触摸响应可以传到下一个界面吗?
- listview嵌套Gribview不能正常改变颜色
- 设置完 persist值后,user debug 版本 可以正常使用,而user版本确获取不到 该persist值
- 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值去做判断