androidxml乱码
❶ Eclipse下开发Android时,R.java生成的文档注释都是乱码
Eclipse 在 3 个地方可以设置字符集,最顶级的是 Eclipse 参数页中的 General > Workspace,这个地方影响所有文件的默认字符集编码。
第二级是右击项目在属性页中的 Resources 里面看到字符集编码,当然这个影响这个项目中所有文件的默认字符集编码。
第三级,关闭这个 XML,右击这个 XML > Open With > Text Editor,然后在菜单中的 Edit > Set Encoding 设置一个字符集编码,关闭文件,再换 Open With > XML Editor 重新打开它。
字符集设置的下拉框除了选择之外还可以手工输入一个字符串,比如 GB18030。
因为我们中国的 windows 默认是 GB18030 国家标准编码,你的文件如果你用 windows 的文本编译器中之类的东西在 Eclipse 之外手工编辑过,内容可能是乱码,而如果已经设置了字符集在 Eclipse 里面编辑它是不会出错的,已经是乱码的文件,把注释中汉字删除重新输入一次注释保存。
像 XML 文件推荐是使用 UTF-8,并且不要用 notepad 这样的不支持字符集选择的编辑器来编辑,它会破坏文件。当然在 Eclipse 里面用 XML Editor 打开一个 XML 文件时,它会使用 <?xml encoding="xxx" ?> 这个 xxx 为字符集,如果你没写,就表示是 UTF-8。这个内容输入到 java 源文件中是保持数据不变,但可能 java 文件使用的字符集不是 UTF-8 导致打开 java 文件时汉字不能显示。
❷ android中的xml文件中文乱码怎么解决
一、android sax库遇到gbk或gb2312编码时
方法1. 可以显示的指明编码比如
InputSource is = new InputSource(inputStream); is.setEncoding("UTF-8");
方法2. 使用InputStreamReader转换 在SDK中可以查看有这样实例化方法,参数二为字符集
InputStreamReader(InputStream in, Charset charset)
具体使用可以是
InputSource is=new InputSource(new InputStreamReader(inputStream,"gb2312"));
有关InputSource的细节, 如果有字符流可用,则解析器将直接读取该流,而忽略该流中找到的任何文本编码声明。如果没有字符流,但却有字节流,则解析器将使用该字节流,从而使 用在 InputSource 中指定的编码,或者另外(如果未指定编码)通过使用某种诸如 XML 规范 中的算法算法自动探测字符编码。如果既没有字符流,又没有字节流可用,则解析器将尝试打开到由系统标识符标识的资源的 URI 连接 。
二、android开发网提倡尽量在服务器上配置使用utf-8编码,虽然显示英文字符较为两非,但是兼容性是最好的,也是国际最主流的标准。
❸ 遇到android5.0.2系统上面使用uiautomator mp 命令生成的xml文件中文乱码怎么解
源码有问题,对比Android5.0.2与4.4的源码得出,在/frameworks/testing/uiautomator/library/core-src/com/Android/uiautomator/core/AccessibilityNodeInfoDumper.java的private static String stripInvalidXMLChars(CharSequence cs)方法存在差异,改方法就是将传入的字符转换为字符串,如下是差异对比:
大家可以看出,左边为5.0.2的源码,明显方法中只支持英文字符,其它字符统统返回问号,解决方法也很简单,就是修改该方法,然后重新编译刷机,自己测试中文正常显示。