我们在汉化翻译的时候经常会碰到翻译后的文本导入游戏后,游戏崩溃的现象。
; n5 m" ^: j6 @: z其实,如果巧妙地利用折半查找法,只需要12次左右即可快速找到那些非法字符。' t* U: X8 s X, l' f- k
假设A.txt是原文文本 共4000行,B.txt是会崩溃的译文文本 共4000行。! p- d2 K6 \3 Y" R% o% [
第1次,我们取出A.txt的1-2000行和B.txt的2001-4000行,组合为一个新的字幕文件。
. X; }) x: T! y. Q- h& v& X' e导入游戏后如果出错,说明在B.txt的2001-4000行有非法字符。; e/ [4 l2 w0 `- V3 Z4 G% V
( h- o0 X& \. I6 X! b' i
第2次,我们取出A.txt的1-2000行,B.txt的2001-3000行,A.txt的3001-4000行。
, B- Z4 C. g! j6 ~导入游戏后如果还是出错,说明在B.txt的2001-3000行有非法字符。# f& p5 r9 ]7 O$ D/ b( H) G( d
% v! M1 |; K1 t- d+ `如此不断折半缩小范围,很快就能定位到一行上,找到非法字符一般只需要12次左右。
3 \6 j1 W$ s4 |# T$ u8 s1 B! `# O当然,文本里有问题的地方可能不止一行,但是找到一行以后,找出原因后就可以用替换等方法修正所有行的问题。 |