我们在汉化翻译的时候经常会碰到翻译后的文本导入游戏后,游戏崩溃的现象。8 A' A' Y) J# N, b$ ^2 M! x
其实,如果巧妙地利用折半查找法,只需要12次左右即可快速找到那些非法字符。% V( i( {5 B3 I* w! I1 J
假设A.txt是原文文本 共4000行,B.txt是会崩溃的译文文本 共4000行。
# y# D, D# i! g- U第1次,我们取出A.txt的1-2000行和B.txt的2001-4000行,组合为一个新的字幕文件。
; d# B$ A" c& K" O% Y导入游戏后如果出错,说明在B.txt的2001-4000行有非法字符。
- ], z8 c9 e* e( T5 v' E* w# O! m( a, B4 x' ]" k# V
第2次,我们取出A.txt的1-2000行,B.txt的2001-3000行,A.txt的3001-4000行。
$ S! K4 r8 x# D导入游戏后如果还是出错,说明在B.txt的2001-3000行有非法字符。
( {/ `8 x9 M' F6 \
* v: v) a3 Y- j) ]& `+ F+ M如此不断折半缩小范围,很快就能定位到一行上,找到非法字符一般只需要12次左右。( `) Z# s8 w& X. \7 d4 Y8 K5 z
当然,文本里有问题的地方可能不止一行,但是找到一行以后,找出原因后就可以用替换等方法修正所有行的问题。 |