Re: [問題] 請問有關重新編譯JAR檔?

看板java作者 (有些事,有時候。。。)時間2年前 (2021/06/08 10:53), 2年前編輯推噓0(003)
留言3則, 3人參與, 2年前最新討論串3/3 (看更多)
※ 引述《neo12114 (Neo)》之銘言: : (補上檔案連結(MEGA)) : https://tinyurl.com/9p5buzfc : 《補上原始碼(就是上面的檔案用JD-GUI解出來的壓縮包)》 : https://tinyurl.com/fcx7tra7 : 各位好,我手上有一個JAR包 : 這個檔案會去讀取別的檔案的文字資料並且修改 : 但是原本寫的人應該使用的是ASCII去寫 : 導致我要讀取中文的檔案的時候會顯示亂碼 : (若是英文的檔案就不會) : 我嘗試使用jd-gui去獲取這個JAR包的原始碼 : 但是我在CMD下命令將.JAVA重新編譯成CLASS的時候會報錯 : 由於對JAVA非常的不熟悉 : 載了ECLIPSE也不太懂要怎麼作 : 想要請教一下,是否有人可以提供幫助,或者簡單的提點一下 : 如果還需要甚麼資訊,請告訴我,或者也可以站內給我 : 感謝各位。 : --- : 錯誤大概會像這樣一整排,但不懂是甚麼原因 : Controller.java:619: error: -> expected : /* */ filteredData.setPredicate(()); : ^ : --- /* */ private static String getString(int cArraySize, DataInputStream in) throws IOException { /* 247 */ String buffer = ""; /* 248 */ for (int j = 0; j < cArraySize; j++) { /* 249 */ buffer = buffer + (char)in.read(); /* */ } /* 251 */ return buffer; /* */ } 在 String 處理相關的實作,只有單純讀資料 (DataInputStream) 。 他並沒有任何需要轉換 encoding 的需求, 如果你看到的是亂碼,那原始資料應該就是壞的。 但在 Java 內的 encoding 應該是一致的 unicode (JVM 用 utf-16,存檔時用 utf-8) 想不通為何會變亂碼。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.227.44.149 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/java/M.1623120798.A.B42.html

06/08 15:49, 2年前 , 1F
因為read()一次讀一個byte被強制轉型成char
06/08 15:49, 1F
合理! ※ 編輯: qrtt1 (36.227.44.149 臺灣), 06/09/2021 12:43:43

06/09 23:25, 2年前 , 2F
這段程式只有在原資料是single byte encoding才會對
06/09 23:25, 2F

06/10 02:01, 2年前 , 3F
那就是程式的 bug 了,他要整組 byte array 餵 String.才行
06/10 02:01, 3F
文章代碼(AID): #1WljkUj2 (java)
文章代碼(AID): #1WljkUj2 (java)