前往Shuct.Net首页

Shudepb PB反编译专家长时间以来,为业内同类软件事实上的唯一选择.细节,彰显专业.态度,决定品质.

关于反编译的搜索

.class文件反编译,汉字乱码问题 - CSDN论坛 - CSDN.NET --> 首页 论坛帮助 论坛牛人 论坛地图 CSDN > CSDN论坛 > Java > Web 开发 管理菜单 置顶 推荐 锁定 移动 编辑 删除 帖子加分 帖子高亮 结帖 发帖 回复 MJ920304 .class文件反编译,汉字乱码问题 [问题点数:40分] 不显示删除回复 显示所有回复 显示星级回复 显示得分回复 只显示楼主 收藏 MJ920304 MJ920304 等级: 结帖率:83.33% 楼主 发表于: 2013-07-24 16:33:03 领导扔过来一个war文件,让我修改这个系统,没找到src,没有源文件,只能用反编译工具,把web-inf里面的.class文件反编译过来,结果发现,反编译过来的汉字全变成了 不知道该怎么解决了,来论坛上求教一下~ 反编译 乱码 java 分享到: 更多 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 回复次数:6 Yuan_Rong_Hua Yuan_Rong_Hua 等级: 结帖率:0% #1 得分:0 回复于: 2013-07-24 16:56:32 你选中项目右击选择属性里面可以设置语言比如utf-8 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 MJ920304 MJ920304 等级: 结帖率:83.33% #2 得分:0 回复于: 2013-07-24 16:57:57 引用 1 楼 Yuan_Rong_Hua 的回复:你选中项目右击选择属性里面可以设置语言比如utf-8 我这是在反编译工具里面截的图,不能直接从工具中拷出文件黏贴到项目里 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 longtian1213 longtian1213 等级: 结帖率:100% #3 得分:0 回复于: 2013-07-24 17:15:56 你用jad试试,加上 -8参数 -8 - 将Unicode字符转换为ANSI字符串,如果输出字符串是中文的话一定要加上这个参数才能正确显示! 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 lingduit lingduit 等级: 结帖率:89.47% #4 得分:0 回复于: 2013-07-25 11:35:08 。。。。居然可以饭编译到这种程度 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 zwx19921215 zwx19921215 等级: 结帖率:57.14% #5 得分:0 回复于: 2013-07-31 10:49:47 但里面却是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,回车。可以看到如下结果: 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 zwx19921215 zwx19921215 等级: 结帖率:57.14% #6 得分:0 回复于: 2013-07-31 10:59:06 引用 3 楼 longtian1213 的回复:你用jad试试,加上 -8参数 -8 - 将Unicode字符转换为ANSI字符串,如果输出字符串是中文的话一定要加上这个参数才能正确显示! 使用jad反编译 必须加上 -8参数,否则中文字符会变成unicode编码 示例 :jad -o -8 -r -s java -d src com/**/*.class 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 管理菜单 置顶 推荐 锁定 移动 编辑 删除 帖子加分 帖子高亮 结帖 发帖 回复 写出你眼中的IE11 赢取新年好礼! 勇敢写出你的爱 赢莫文蔚签名大礼 2014年4月微软MVP申请开始了! 陈勇- 敏捷开发现状及发展之路 CSDN高校俱乐部 高校全新改版邀你来学习和挑战 回复内容 匿名用户不能发表回复!登录|注册 每天回帖即可获得10分可用分!小技巧:教您如何更快获得可用分 你还可以输入10000个字符(Ctrl+Enter) 请遵守CSDN用户行为准则,不得违反国家法律法规。 转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。 核心技术类目 全部主题 Java VPN Android iOS ERP IE10 Eclipse CRM JavaScript Ubuntu NFC WAP jQuery 数据库 BI HTML5 Spring Apache Hadoop .NET API HTML SDK IIS Fedora XML LBS Unity Splashtop UML components Windows Mobile Rails QEMU KDE Cassandra CloudStack FTC coremail OPhone CouchBase 云计算 iOS6 Rackspace [关闭] [关闭]