作者qrtt1 (有些事,有时候。。。)
看板java
标题Re: [问题] 请问有关重新编译JAR档?
时间Tue Jun 8 10:53:15 2021
※ 引述《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://webptt.com/cn.aspx?n=bbs/java/M.1623120798.A.B42.html
1F:→ Chikei: 因为read()一次读一个byte被强制转型成char 06/08 15:49
合理!
※ 编辑: qrtt1 (36.227.44.149 台湾), 06/09/2021 12:43:43
2F:→ ssccg: 这段程式只有在原资料是single byte encoding才会对 06/09 23:25
3F:→ qrtt1: 那就是程式的 bug 了,他要整组 byte array 喂 String.才行 06/10 02:01