原因是中文預設使用GBK編碼解析,但是項目jar包打包是用utf-8編碼。
文章最後有最終版本下載下傳。
前言
之前一直使用老版本的jd-gui,最近想看看有沒有更新,結果發現還真更新了。在github上找到了源碼。
git位址:https://github.com/java-decompiler/jd-gui。
在window環境下使用中遇到了亂碼問題。特此整理記錄。
問題有兩個:
一、從反編譯代碼的界面CTRL+C複制是如果選中内容包含中文,貼到其他編輯器時,中文丢失。
二、打開xml檔案、properties檔案等包含中文時。中文在反編譯界面中顯示亂碼。用其他工具打開正常。
正文
gradle 的使用不做講解,請自行學習。
問題一:
更新插件即可,需要重新編譯源碼。
compile 'com.fifesoft:rsyntaxtextarea:3.0.4'更新到compile 'com.fifesoft:rsyntaxtextarea:3.1.1'。據說更新到3.0.5就解決此問題了。
問題二:
1.使用jd-gui-1.6.6.jar 反編譯時出現亂碼。增加運作參數。
java -D'file.encoding'=utf-8 -jar .\jd-gui-1.6.6.jar
// Java executable wrapper for Windows //
launch4j {
createExe.dependsOn 'proguard'
jvmOptions = ['-Dfile.encoding=utf-8']//這行是新增的
version = textVersion = project.version
fileDescription = productName = 'JD-GUI'
errTitle 'JD-GUI Windows Wrapper'
copyright 'JD-GUI (C) 2008-2019 Emmanuel Dupuy'
icon projectDir.path + '/src/launch4j/resources/images/jd-gui.ico'
jar projectDir.path + '/' + proguard.outJarFiles[0]
bundledJrePath = '%JAVA_HOME%'
}