我们在汉化翻译的时候经常会碰到翻译后的文本导入游戏后,游戏崩溃的现象。
9 t3 ?5 K) a# r% } m+ ]9 @其实,如果巧妙地利用折半查找法,只需要12次左右即可快速找到那些非法字符。' z5 d f, T3 O+ B) T
假设A.txt是原文文本 共4000行,B.txt是会崩溃的译文文本 共4000行。
# ~: G* D7 @2 u2 b第1次,我们取出A.txt的1-2000行和B.txt的2001-4000行,组合为一个新的字幕文件。, q- S. U0 A- n1 X B4 @ c# o
导入游戏后如果出错,说明在B.txt的2001-4000行有非法字符。. J* i0 V! X& n+ N" ?
# S" r& E" o) u( K% l0 p: r& l
第2次,我们取出A.txt的1-2000行,B.txt的2001-3000行,A.txt的3001-4000行。
; S9 {) N S$ h导入游戏后如果还是出错,说明在B.txt的2001-3000行有非法字符。! w/ f$ d. ^3 E8 C9 z' R/ n
2 Y0 \6 Q4 A$ i' t1 q$ N- P4 x0 ]. X- o
如此不断折半缩小范围,很快就能定位到一行上,找到非法字符一般只需要12次左右。
p9 q, g1 a7 o' f+ Q: d. b- O/ t当然,文本里有问题的地方可能不止一行,但是找到一行以后,找出原因后就可以用替换等方法修正所有行的问题。 |