论坛风格切换切换到宽版
  • 12916阅读
  • 24回复

哪位帮助解决一下乱码问题 [复制链接]

上一主题 下一主题
离线wanfu
 

发帖
2734
金钱
12170
威望
1217
只看楼主 倒序阅读 0 发表于: 2006-09-23
我汉化了一款VC软件,该软件有标准资源和Uncode和ASCII非标字符,我已修改了所有标准资源中的字体和语系为简体中文,但是修改主程序中的ASCII非标字符为简体中文时,结果在“验证”的列表框中显示乱码。我试图改为UFT-8和Uncode也没有成功。试图用OllyDBG修改,只找到与字体设置相关的CreateFontW模块,字符设置 CharSet = DEFAULT_CHARSET 应该不用改。
哪位高手可以帮助我?
文件在此:[attachmentid=21647]
附件: LOOMConfig.rar (314 K) 下载次数:220
离线wanfu

发帖
2734
金钱
12170
威望
1217
只看该作者 1 发表于: 2006-09-24
哪位可以解决该问题的话,赠送一个市面上没有的重量级本地化软件。
离线coolgas

发帖
2067
金钱
70
威望
7
只看该作者 2 发表于: 2006-09-25
给个英文版看看
PS:除了 Passolo 或者 Alchemy Catalyst 的正版狗之外,其它无视
摆过地摊、玩过汉化、做过美工,至今未婚...
http://coolgascn.ys168.com/
离线cao_cong

发帖
403
金钱
40
威望
4
只看该作者 3 发表于: 2006-09-25
你这个是程序的转码问题。比如你汉化的验证列表框中的第一个“添加“<%s>”标记将改变文档“%s”的格式和/或结构。”,ASCII码是
CCEDBCD3A1B03C25733EA1B1B1EABCC7BDABB8C4B1E4CEC4B5B5A1B02573A1B1B5C4B8F1CABDBACD2FBBF2BDE1B9B9A1A3,
程序转换成MultiByte,成为CC00ED00BC00D300A100B0003C00250073003E00A100B100B100EA00BC00C700BD00AB00B800C400B100E400CE00C400B50
0B500A100B00025007300A100B100B500C400B800F100CA00BD00BA00CD002F00BB00F200BD00E100B900B900A100A300,
而最后显示的应该是UNICODE,对应你的翻译最后应该显示的是UNICODE编码FB6DA0521C203C00250073003E001D200768B08B065C3965D853876563681C20250073001D2084763C680F5F8C542F001662D
37E84670230,可程序没干这事,给你转换成MultiByte它就完事了。所以你英文显示正常,变成中文宽字符时肯定不正常了。
貌似除了在程序中写转换字符的补丁代码外没啥更好的方法。贴个效果图:
弄起来应该也比较麻烦。我有空的话就帮你搞一下,也对你那个老盖的工具比较感兴趣,想瞅瞅
离线wanfu

发帖
2734
金钱
12170
威望
1217
只看该作者 4 发表于: 2006-09-25
QUOTE(cao_cong @ 2006年 09月 25日 12时 50分) [snapback]307397[/snapback]

你这个是程序的转码问题。比如你汉化的验证列表框中的第一个“添加“<%s>”标记将改变文档“%s”的格式和/或结构。”,ASCII码是
CCEDBCD3A1B03C25733EA1B1B1EABCC7BDABB8C4B1E4CEC4B5B5A1B02573A1B1B5C4B8F1CABDBACD2FBBF2BDE1B9B9A1A3,
程序转换成MultiByte,成为CC00ED00BC00D300A100B0003C00250073003E00A100B100B100EA00BC00C700BD00AB00B800C400B100E400CE00C400B50
0B500A100B00025007300A100B100B500C400B800F100CA00BD00BA00CD002F00BB00F200BD00E100B900B900A100A300,
而最后显示的应该是UNICODE,对应你的翻译最后应该显示的是UNICODE编码FB6DA0521C203C00250073003E001D200768B08B065C3965D853876563681C20250073001D2084763C680F5F8C542F001662D
37E84670230,可程序没干这事,给你转换成MultiByte它就完事了。所以你英文显示正常,变成中文宽字符时肯定不正常了。
貌似除了在程序中写转换字符的补丁代码外没啥更好的方法。贴个效果图:
弄起来应该也比较麻烦。我有空的话就帮你搞一下,也对你那个老盖的工具比较感兴趣,想瞅瞅


确实高,佩服!麻烦你辛苦帮助搞一下。谢谢!等你帮我搞好了,我提供软件给你。
离线ymzzszg

发帖
542
金钱
410
威望
41
只看该作者 5 发表于: 2006-09-26
借楼主的宝地问个问题:
如何修改程序的语系,我也遇到一个问题,汉化后程序界面全是乱码,而且菜单按钮成了一窄条,什么字符也没有了,我在“汉化技术”区发了帖子,有几位朋友提示过,可是不知道用何工具啊?
cao_cong 版主能不能进一步帮助一下,谢谢了!
离线restools

发帖
2848
金钱
1430
威望
143
只看该作者 6 发表于: 2006-09-26
汇编不在行,所以打洞放代码的功夫就留待高人来实现了,我的方法很简单,作了个DLL,里面有个函数,然后让软件的处理变成调用我的DLL来处理。我还是喜欢这种方式,因为我不需要在软件中寻找合适位置放置合适代码,而且这需要很强的ASM代码整合能力,一不小心,可能引起异常(这里花的时间绝对不会少)。

虽然这不是完美的实现方法,但是对于汉化这样的工程,如果不是为了技术探讨,大可不必做到非常完美,只需要实现效果即可。



DLL做出来了,用来参考,可把里面反汇编的代码稍作修改应该可以在原程序上放置实现更完美的效果。
附件: LM.rar (73 K) 下载次数:273
我的BLOG:   http://restools.hanzify.org (Inno Setup 增强版, 插件 发布站点)
离线cao_cong

发帖
403
金钱
40
威望
4
只看该作者 7 发表于: 2006-09-27
restools 兄这个方法好!比直接在程序中写补丁代码简单多了,学习!我看了你改的主程序,应该是用LordPE添加了你DLL中的导出函数,把一个调用SendMessageW的地方改成调用你的函数。严重学习!
离线

发帖
8854
金钱
161
威望
17
只看该作者 8 发表于: 2006-09-27
好方法,以前也遇到类似问题,看来可以借用了。
<a href="http://teach.hanzify.org/index.php?Go=Show::422-1074355200" target="_blank"><!--coloro:red--><span style="color:red"><!--/coloro-->正大光明赚钱求存,阳谋有私继续汉化</a><br /><a href="http://bbs.hanzify.org/index.php?showtopic=20135" target="_blank">新手提问必看</a><br />Exescope只是汉化辅助工具<br /><a href="http://teach.hanzify.org" target="_blank">看教学啊看教学!</a><br />你先动手,我再帮你!<!--colorc--></span><!--/colorc--><br /><img src="http://teach.hanzify.org/Images/hhteach.gif" border="0" alt="图像" /><br />多做补丁版,少做安装版...
离线restools

发帖
2848
金钱
1430
威望
143
只看该作者 9 发表于: 2006-09-27
QUOTE(cao_cong @ 2006年 09月 27日 09时 32分) [snapback]307577[/snapback]
restools 兄这个方法好!比直接在程序中写补丁代码简单多了,学习!我看了你改的主程序,应该是用LordPE添加了你DLL中的导出函数,把一个调用SendMessageW的地方改成调用你的函数。严重学习!


你说的没错,就是这样搞,这样一来,任何人只需要学会一点点 OllyDBG 的东西,能找到软件功能实现的重点位置,改一下地址,立刻就可以把剩下的工作花在自己能够掌握的编程技术上,可以说你几乎可以不用接触ASM那种让人头晕的代码,无论你用的 VC++,Delphi,VB,C#…… 只要能写出 DLL 的编程软件,你就能够实现自己来为软件打补丁。

我的BLOG:   http://restools.hanzify.org (Inno Setup 增强版, 插件 发布站点)