1. 程式人生 > >轉: 錯誤: 編碼GBK的不可對映字元 - Android Studio 生成javadoc文件時報錯

轉: 錯誤: 編碼GBK的不可對映字元 - Android Studio 生成javadoc文件時報錯

1.執行Tools工具中的Generate JavaDoc報錯
想將專案生成一個幫助文件,結果生成doc時(如下圖所示),

 
報下面錯誤

錯誤: 編碼GBK的不可對映字元

錯誤: 編碼GBK的不可對映字元
     * 璁劇疆SurfaceView鐨勭粦瀹氬叧緋?


解決方法
在生成DOC彈出的對話方塊中,在other command line argument中輸入下面命令

-encoding utf-8 -charset utf-8


如下圖所示 
 è¿éåå¾çæè¿°
完美解決上述問題,成功生成了doc文件。

2.原理解釋
我的android studio中所有的程式碼文件都是用utf-8進行編碼的,java在編譯時會將uft-8編碼的程式碼轉化為unicode編碼存入記憶體中。 
這裡要注意理清一個概念,JavaDoc.

JavaDoc 是用以提取註釋的工具,Jdk安裝的一部分。

android studio gradle裡的預設編譯的編碼是utf-8的,而javadoc卻是使用的當前電腦環境中的預設編碼,即是GBK。

如果我們用的是英文,那utf-8與gbk的英文編碼方式都是一樣的。但一遇到中文就會報上述錯誤了,因為中文用的是utf-8的編碼,而javadoc卻用了gbk的編碼去轉換中文,所以就無法轉換從而報錯。

注: GBK中文佔兩個位元組,utf-8中文(常用)佔三個位元組

因為程式碼中的註釋部分包含了許多中文,而javadoc是會去編譯這些註釋從而生成HTML的幫助文件的,所以就會出現上述的編碼GBK轉換錯誤的報錯。

3.解決問題時踩過的坑


1.在app的build.gradle裡新增程式碼
新增如下程式碼到build.gradle中

tasks.withType(JavaCompile) {
    options.encoding = "UTF-8"
}


生成doc時依然報錯,這個方案應該是指程式碼的編譯,而不適用於doc生成。

2.更改專案的編碼
如下圖,我將Project Encoding的編譯換成了utf-8.依然報錯 

è¿éåå¾çæè¿°

本身我的文件就都是utf-8編碼的,只不過之前這裡的Project Encoding是顯示的系統預設(即GBK)。這個方案也是跟1一樣,不適用於doc生成。
--------------------- 
轉自:

https://blog.csdn.net/pigdreams/article/details/80370796