我们在汉化翻译的时候经常会碰到翻译后的文本导入游戏后,游戏崩溃的现象。
; }7 F+ V) a( s( \0 U% e/ ]7 F' ^其实,如果巧妙地利用折半查找法,只需要12次左右即可快速找到那些非法字符。
+ u6 S* W1 E2 q1 C假设A.txt是原文文本 共4000行,B.txt是会崩溃的译文文本 共4000行。4 m% _0 |# ]2 J" w7 y% F- r
第1次,我们取出A.txt的1-2000行和B.txt的2001-4000行,组合为一个新的字幕文件。
* m# _+ r; C. ] A" M导入游戏后如果出错,说明在B.txt的2001-4000行有非法字符。
Z- I* s: z) U8 p
% \- _- G8 t7 [第2次,我们取出A.txt的1-2000行,B.txt的2001-3000行,A.txt的3001-4000行。7 B. ~3 P, p. [/ m
导入游戏后如果还是出错,说明在B.txt的2001-3000行有非法字符。
' l L' Q& J# Q
6 D$ o7 W" g1 J, N% L) K1 W如此不断折半缩小范围,很快就能定位到一行上,找到非法字符一般只需要12次左右。0 t! T( M0 p7 h' i; e
当然,文本里有问题的地方可能不止一行,但是找到一行以后,找出原因后就可以用替换等方法修正所有行的问题。 |