我们在汉化翻译的时候经常会碰到翻译后的文本导入游戏后,游戏崩溃的现象。- z3 K O/ {) j* M( O( o
其实,如果巧妙地利用折半查找法,只需要12次左右即可快速找到那些非法字符。
0 S& b% n2 R( r% |假设A.txt是原文文本 共4000行,B.txt是会崩溃的译文文本 共4000行。
/ J/ D$ @. j5 s5 T( I# ^第1次,我们取出A.txt的1-2000行和B.txt的2001-4000行,组合为一个新的字幕文件。
F, f# j: l3 b( n. Y导入游戏后如果出错,说明在B.txt的2001-4000行有非法字符。# U5 B& y+ w: W; E! R
3 y) ]( J1 _* M3 Z9 F3 Y/ [& ^4 v
第2次,我们取出A.txt的1-2000行,B.txt的2001-3000行,A.txt的3001-4000行。
5 G( G$ A7 _: D6 C" i& Z9 z导入游戏后如果还是出错,说明在B.txt的2001-3000行有非法字符。+ p- y2 N1 j- t x0 w
' i" y, }3 `; j0 m
如此不断折半缩小范围,很快就能定位到一行上,找到非法字符一般只需要12次左右。* `; c7 N/ B$ f; J( }
当然,文本里有问题的地方可能不止一行,但是找到一行以后,找出原因后就可以用替换等方法修正所有行的问题。 |