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的源碼,明顯方法中只支持英文字元,其它字元統統返回問號,解決方法也很簡單,就是修改該方法,然後重新編譯刷機,自己測試中文正常顯示。