任意非英游戏在中文系统下的安装思路本人早就提出过了。* M" |& E8 {" g, ]4 b! \6 u
这里主要是讲一下具体实现方法。
9 [1 O2 h% u) f7 _* i4 R( j* h2 N6 M* |! x
我们先回顾一个基本事实,就以俄文为例。当我们打开一个俄文文本,在gb2312编码的方式下观看的时候,会发现展现在我们眼前的是一片乱码,其中还夹杂着一些问号,这些问号表示在gb2312编码系统中不存在这个编码,所以也就无法把这个俄文字符用对应的gb2312编码字符表示出来。
! \# Z0 [& e* V: A+ z# H8 z. x3 B. v
* U. }$ I3 k! H- ?( C! l l7 G如果安装程序要建立一个名称中带有这样的俄文字符的快捷方式或是目录的话,自然无法建成。% l( o! Y7 [: ]! U/ g
如果安装程序是先建立快捷方式后解压拷贝数据文件的话,自然一上来就会出错退出了。0 L3 V/ g, {3 l M+ J1 L2 c2 O
/ e5 m, |3 w3 y5 x. g. F0 l知道了这个原理的话,要解决自然就很简单了。
( C- s( F! a8 `" J具体方法如下。
5 k% l- T8 ~; p2 c7 w6 @
3 B0 ?* C, C' P) M% g用FileMon这个软件对安装程序进行跟踪,很容易就在log中能找到出错的那个快捷方式的名称。; U; v8 c+ b; _ [6 t" S" C# j0 `( l
比如说是 难曰儋拟 ?天.lnk 8 d+ C* @! Y) C3 {6 W+ G
接下去我们只要在安装程序的配置文件中找到这个名称,改为gb2312编码中存在的字符就行了。7 S6 Z% q. ?+ j3 `3 U6 A. c/ V
我们新建一个gb2312编码的文件,输入 难曰儋拟 ,保存。
2 i8 _. d: l$ J7 |3 R9 K用hexworkhop打开,拷贝其2进制编码串,在安装程序的配置文件(比如install shield通常是 data1.hdr)中寻找这个2进制编码串,很容易就找到了,这个串一般是0x00结尾的,把它修改为一个在gb2312编码中存在的串就行了。不知道gb2312编码的话,可以自己建立一个gb2312编码的文本,然后用hexworkshop看。
& \! z% T' {, y& d5 f$ N& v& v! \, x, B( K5 z
替换完毕以后,游戏就可以正常安装了。" x4 X q$ j M/ K: h
用这个方法可以解决任意非英游戏在中文系统下的安装问题。
/ q3 P& t! l) }, R! R- ?% K5 @! Z. p6 `' u
附上俄文版Morbus Gravis修改后的安装配置文件,此游戏原来在中文系统下安装出错。 |