我们在汉化翻译的时候经常会碰到翻译后的文本导入游戏后,游戏崩溃的现象。# }+ Q# C3 G8 d! T$ \
其实,如果巧妙地利用折半查找法,只需要12次左右即可快速找到那些非法字符。; D! A" [* a x) _
假设A.txt是原文文本 共4000行,B.txt是会崩溃的译文文本 共4000行。' I/ ]# @3 y: d; ?' H
第1次,我们取出A.txt的1-2000行和B.txt的2001-4000行,组合为一个新的字幕文件。
: L7 N% G9 d# r5 I导入游戏后如果出错,说明在B.txt的2001-4000行有非法字符。" C$ a6 J8 Y4 S
% q2 T+ n/ x3 U; S. G
第2次,我们取出A.txt的1-2000行,B.txt的2001-3000行,A.txt的3001-4000行。
0 y1 h: u. F3 |7 w导入游戏后如果还是出错,说明在B.txt的2001-3000行有非法字符。
8 d1 o2 |6 K! d9 q+ n" ^! e. D
8 ]% V9 m7 g9 o `; ~! ~9 A4 O如此不断折半缩小范围,很快就能定位到一行上,找到非法字符一般只需要12次左右。
" p/ E! K8 ^3 A当然,文本里有问题的地方可能不止一行,但是找到一行以后,找出原因后就可以用替换等方法修正所有行的问题。 |