1. 程式人生 > >Android studio執行時亂碼 編碼問題 閿欒: 緙栫爜UTF-8鐨勪笉鍙槧灝勫瓧絎?

Android studio執行時亂碼 編碼問題 閿欒: 緙栫爜UTF-8鐨勪笉鍙槧灝勫瓧絎?

編譯的時候老是出現如下錯誤:

MainActivity.java:24: 閿欒: 緙栫爜UTF-8鐨勪笉鍙槧灝勫瓧絎?

看也看不懂,就知道是編碼出現了問題。一般的思路是,找到setting


找到File Encodings節點,右邊有三項,都設為UTF-8,在編譯一下,還是出錯.... 我就糾結了

 網上搜了一下,有一個答案:

這主要是gradle沒有支援UTF-8編碼。找到的解決方案是在build.gradle配置檔案中末尾加入一句指令碼即可解決,指令碼內容如下: 

//設定編碼 
tasks.withType(Compile) { 
options.encoding = "UTF-8" 
} 

還是出錯.... 我就糾結了..最後才發現:

Android studio IDE 右下角有個神奇的提示:


原來是這個東西在作怪,有些檔案是UTF-8編碼,有些是GBK,但是編譯時使用UTF-8編碼,所以導致某些頁面亂碼。注意:它可以針對某個檔案設定編碼,所以哪些頁面出現亂碼就重點排除咯。

情況一:編輯器內的中文註釋亂碼。

解決辦法:在介面的右下角找到 UTF-8 ,單擊之,在彈出的列表中選中GBK 在彈出框內選中Reload

總結:導致這樣的原因是你這個.java檔案本身是GBK編碼的,你當然可以用GBK方式可以讀,可是最好把從根本上把這個檔案編碼成UTF-8的!而且很多人出現這種情況是因為從eclipse複製,或匯入檔案到了android studio中。Eclipse的時候它可以自動識別,到了as就不可以了故出現這些錯誤。

情況二:用虛擬機器執行應用時APP介面文字亂碼。

解決辦法:在Gradle Scripts -> build.gradle中的如下下圖位置新增:

android{compileOptions.encoding="GBK"}//或者compileOptions.encoding="GBK"

情況三:Gradle Build 中出現如下亂碼,且編輯器的中文註釋有亂碼

需要工具:SublimeText 或者 Notepad++ 或者 EidtPlus 總之是那些能把你的檔案改成UTF-8 without DOM 編碼的編輯器,本人用的是Sublime Text2

①雙擊如下亂碼提示的任意一行,它將會彈出一個.java檔案給你,比如:我彈出的了AbInnerViewPager.java這個檔案的編輯視窗,其中的中文註釋都是亂碼

/**其實下面亂碼的每一行代表一處你某個類或其他檔案中的中文亂碼,一個類可能產生好幾行下面那種亂碼*/



②在左邊的目錄框右鍵那個類->點選show in explorer(就是找到這個檔案在電腦中的位置)

③以sublimeText的格式開啟這個.java檔案,點選File->Save with Encoding->UTF-8

④返回android studio等一下(不用rebuild什麼的,文中的亂碼自己會變成了正常的中文)

⑤rebuild一下,重複以上步驟,知道把那些GBK格式的檔案都改為UTF-8為止

總結:

1、Sublime Text2有個缺點,不能一次全選再改格式!!!雖然可以用ctrl全選然後在Save with Encoding,但最終你會發現只有一個檔案改了編碼方式而已,而且你可以從sublime介面最下那個提示橫欄看到是哪一個,不知為何,可能是我開啟的方式有問題吧==!,或者是一個Bug,請後來試過的同學跟我說下你們可以不。。。

2、千萬不要用微軟自帶的記事本來另存為,然後再編碼那裡改成UTF-8就以為萬事大吉,血的教訓告訴你!這個UTF-8實際上是UTF-8 with DOM,然後你rebuild後會有如下錯誤提示,然後你最後還是要改成UTF-8 without DOM


3、最好把以後的檔案都以UTF-8儲存,檢視

File->Setting->File->Editor->File Encodings如下設定