我们在汉化翻译的时候经常会碰到翻译后的文本导入游戏后,游戏崩溃的现象。
" k) S& s& d8 G) }7 \6 ^" q其实,如果巧妙地利用折半查找法,只需要12次左右即可快速找到那些非法字符。
) j$ J# \' h( ^3 e' n1 i假设A.txt是原文文本 共4000行,B.txt是会崩溃的译文文本 共4000行。
$ g) t3 v( b! Z8 o3 ^* |/ {第1次,我们取出A.txt的1-2000行和B.txt的2001-4000行,组合为一个新的字幕文件。
! F' t, ~: n2 }$ u; Z" m- V: T导入游戏后如果出错,说明在B.txt的2001-4000行有非法字符。; m: b# z; i4 D; @6 g4 w+ }) V8 M
- O" I/ \* V6 H3 _' `; z第2次,我们取出A.txt的1-2000行,B.txt的2001-3000行,A.txt的3001-4000行。
1 ~( d# ~# y( z5 ?% F导入游戏后如果还是出错,说明在B.txt的2001-3000行有非法字符。! n y2 b4 F' ?- Z* L ~% u i
+ [6 Z$ P+ o6 W6 ?: W# C如此不断折半缩小范围,很快就能定位到一行上,找到非法字符一般只需要12次左右。
0 Y7 Y$ }/ C& x) r. O; w当然,文本里有问题的地方可能不止一行,但是找到一行以后,找出原因后就可以用替换等方法修正所有行的问题。 |