我们在汉化翻译的时候经常会碰到翻译后的文本导入游戏后,游戏崩溃的现象。
6 @% l1 E! g% m2 j7 D; {0 z其实,如果巧妙地利用折半查找法,只需要12次左右即可快速找到那些非法字符。
$ {+ h9 j! ~6 F/ U假设A.txt是原文文本 共4000行,B.txt是会崩溃的译文文本 共4000行。
* X# T8 Q5 V1 c3 j5 y第1次,我们取出A.txt的1-2000行和B.txt的2001-4000行,组合为一个新的字幕文件。! e- l9 y) R# a5 e& H
导入游戏后如果出错,说明在B.txt的2001-4000行有非法字符。6 O f p F6 V' v
, X9 p' Q9 n. ~! h, s$ q第2次,我们取出A.txt的1-2000行,B.txt的2001-3000行,A.txt的3001-4000行。
$ k/ C R$ }9 F( ]7 B导入游戏后如果还是出错,说明在B.txt的2001-3000行有非法字符。: ~* Y7 H/ `9 P9 r5 g7 e2 k
9 |% `* W1 k1 T" l
如此不断折半缩小范围,很快就能定位到一行上,找到非法字符一般只需要12次左右。" M0 |: P% Z, q, p9 Q
当然,文本里有问题的地方可能不止一行,但是找到一行以后,找出原因后就可以用替换等方法修正所有行的问题。 |