Windows 7 7106乱码替换MUI文件下载:http://www.kkzj.com/
先看看windows 7 7106官文中文版的乱码情况,比如计算器(calc.exe.mui)的菜单:
居然有10处之多的乱码。。。但每个乱码都不一样,说明是有规律的!
初步分析了一下,这些乱码都不是:ANSI,Unicode,UniBigEnd,UTF-8,UTF-7
用UE比较了一下,貌似与UTF-8有些关联,难道是微软自创的编码?
初步分析,乱码长度固定为8!且不管哪儿出现的乱码,长度均固定为8个ASCII字符。
这样就应该可以理解了:这个乱码,肯定不是编码!而是“特征码”。
继续查找这些特征码,发现全部都是唯一的,应该是正式版出来时候做为“标识”类似的东西。那么通过查找特征码来汉化暂时不能实现了(因为有多少个没有汉化的字串,就有多少个特征码)。
于是本人继续研究了一会儿。。。发现了这里面的“达芬奇密码”呢,呵呵
我从基础介绍起先:
汉字的编码方案,现在一般有GB2312和GBK两种.
GB2312和GBK每一个汉字由2个字节组成,这2个字节的ASCII码大小分别是:
gb2312:
high8 = 0xa1-->0xfe (Dec: 161 --> 254)
low8 = 0xa1-->0xfe (Dec: 161 --> 254)
gbk:
high8 = 0x80-->0xfe (Dec: 128 --> 254)
low8 = 0x40-->0xfe (Dec: 64 --> 254)
high8表示高8位, low8表示低8位.
学过计算机基础的同志都知道:低位在前 高位在后
举个例子来说:
“查看”的“查”汉字,ASCII码为:
B2 E9
high8 : E9 (233)
low8 : B2 (178)
很显然这是一个gb2312编码的汉字!
而calc.exe.mui的“乱码”,其中第一条为:
??孱侢&View
以第一个字符"?"为例,ASCII码为:
FE A0
high8 : A0 (160)
low8 : FE (254)
很显然,这不是一个gb2312编码的汉字!而且按以上编码规则,可以肯定是gbk编码的字符!
而接下来的三个乱码,应该也是同样的。可以验证:
?: FE 9F
孱: E5 EE
侢: 81 FE
这样处理思路就有了:
1.遍历简体中文资源目录的所有*.mui文件.
2.分别打开*.mui的所有资源,只要最前面8个字符是连续的4个非gb2312编码,而且是gbk编码的字符,那这个肯定就是我们要找的字符串。
(回deepxw :昨晚没看仔细,的确前8个字符中有可能有gb2312汉字。但是我发现还是可以这样判断:
前8个字符中带有1个以上gbk编码字符和3个以下的gb2312汉字,而第9个字符是英文(ASCII<127),那这条字符串是乱码的。
例如:IE8的选项卡设置,位于inetcpl.cpl.mui的6100对话框有这么一条:
?唱唱唱&Show previews for individual tabs in the taskbar*
第1个是gbk字符,第2-4个是gb2312汉字,第9个& ASCII<127的。另:我发现好象“唱”字比较多哦,哈哈,不知道是不是偶然.)
3.将这些字符串所在的*.mui文件,以及对应的资源ID记录到一个log日志文件当中。
4.用第三方工具汉化之(当然也可以用字典直接在第2步的时候就完成)。
PS: 由于本人非常懒,接下来的具体编程工作就不打算做了,留给有时间有技术的兄弟来做吧。嘿嘿~
Copyright ©2018-2023 www.958358.com 粤ICP备19111771号-7 增值电信业务经营许可证 粤B2-20231006