1. 程式人生 > >Android Studio 中GBK中文亂碼和因此無法執行程式的一些經驗

Android Studio 中GBK中文亂碼和因此無法執行程式的一些經驗

1. 顯示的亂碼

如圖:
編解碼不統一引起的亂碼

因為檔案本身是以GBK方式儲存的,而AS預設以UTF-8方式顯示,因此顯示亂碼。
解決方法也很簡單,點選右下角的”UTF-8”,選擇GBK,選擇Load,就顯示正確的文字了。

此時要想轉換成UTF-8編碼也很簡單,點選右下角的”GBK”,選擇UTF-8,選擇Convert就可以了。

UTF-8轉換成GBK也一樣的,在能正確顯示的情況下選擇Convert就對了。

但是這種方式一次只能轉換一個檔案,以這樣的方式一個一個去點選,太費勁。

AS的設定裡有改變目錄下所有檔案的顯示編碼的功能,如圖:
設定目錄下檔案編碼

我們選擇src目錄,再在右側箭頭處點選,選擇GBK,確定之後可以看到,所有GBK檔案都顯示正確了。注意這裡設定的只是預設編碼,而目錄下的UTF-8編碼的檔案還是以UTF-8方式顯示的,不會受到這個設定的影響。

但是我並沒有找到把目錄下GBK檔案全部轉換成UTF-8檔案的方法,有朋友知道的話希望可以分享一下。

2. 因GBK檔案無法執行APP的錯誤

解決的顯示的亂碼問題之後,嘗試執行程式,出現以下錯誤:
GBK檔案無法執行

這是什麼原因呢?不知道。

嘗試解決,第一步(參考連結1):

在build.gradle中的”android”標籤下新增:
android{compileOptions.encoding=”GBK”}
或者
compileOptions.encoding=”GBK”

如:

android {
    compileOptions.encoding = "GBK"
compileSdkVersion 22 buildToolsVersion "23.0.3" ... }

此時再次嘗試執行,好了,得到了中文的錯誤原因,也算是一個進步了,如圖:
編碼GBK的不可對映字元

檢查出錯的檔案,發現都是UTF-8編碼方式的檔案,再把它們一個一個Convert成GBK編碼(參考上文)。

再次嘗試執行,成功了。不清楚其中的原理,希望有知道的朋友科普一下。