.class文件反编译,汉字乱码问题

MJ920304 2013-07-24 04:33:03
领导扔过来一个war文件,让我修改这个系统,没找到src,没有源文件,只能用反编译工具,把web-inf里面的.class文件反编译过来,结果发现,反编译过来的汉字全变成了

不知道该怎么解决了,来论坛上求教一下~
...全文
2767 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Garry1115 2013-07-31
  • 打赏
  • 举报
回复
引用 3 楼 longtian1213 的回复:
你用jad试试,加上 -8参数 -8 - 将Unicode字符转换为ANSI字符串,如果输出字符串是中文的话一定要加上这个参数才能正确显示!
使用jad反编译 必须加上 -8参数,否则中文字符会变成unicode编码 示例 :jad -o -8 -r -s java -d src com/**/*.class
Garry1115 2013-07-31
  • 打赏
  • 举报
回复
但里面却是gb2312形式的unicode编码,因此我们还得做一个工作,将这些编码转换成中文。 使用ant脚本来完成这个工作,内容比较简单,加了注释,应该很好明白,脚本文件名为build.xml,它放在src目录下,和反编译所得的包处在同一层。 <?xml version="1.0" encoding="GBK"?> <project name="decompile" basedir="." default="native2ascii"> <!-- 定义输出目录 --> <property name="build" value="build"/> <!-- 清除输出目录 --> <target name="clean"> <delete dir="${build}"/> </target> <!-- 创建输出目录 --> <target name="init" depends="clean"> <mkdir dir="${build}"/> </target> <!-- 编码转换 reverse="true"为反向转换 --> <target name="native2ascii" depends="init"> <native2ascii reverse="true" src="${basedir}" encoding="gb2312" dest="${basedir}/${build}" /> </target> </project> 有一个地方需要补充一下,在native2ascii元素中,src和dest这两个属性表示着路径。如果反编译后,src目录下,有多个不同的文件夹,这时使用ant来转换编码,请先想好要对哪些文件进行反编码;如果按上面的写法,将会把src目录下的所有文件夹中的所有文件进行反编码。假设,现在有com和org两个文件夹(其实是两个包),我只需要对com中的文件进行反编码,那么可以这样改写:src="${basedir}/com" dest="${basedir}/${build}/com" 其它的都不变。在cmd中进入到src路径下,输入ant,回车。可以看到如下结果:
  • 打赏
  • 举报
回复
。。。。居然可以饭编译到这种程度
S117 2013-07-24
  • 打赏
  • 举报
回复
你用jad试试,加上 -8参数 -8 - 将Unicode字符转换为ANSI字符串,如果输出字符串是中文的话一定要加上这个参数才能正确显示!
MJ920304 2013-07-24
  • 打赏
  • 举报
回复
引用 1 楼 Yuan_Rong_Hua 的回复:
你选中项目右击选择属性里面可以设置语言比如utf-8
我这是在反编译工具里面截的图,不能直接从工具中拷出文件黏贴到项目里
  • 打赏
  • 举报
回复
你选中项目右击选择属性里面可以设置语言比如utf-8

81,114

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧