我们在汉化翻译的时候经常会碰到翻译后的文本导入游戏后,游戏崩溃的现象。
- b; i. ]. V* H# T其实,如果巧妙地利用折半查找法,只需要12次左右即可快速找到那些非法字符。
5 \% H5 R0 J+ q7 I$ l假设A.txt是原文文本 共4000行,B.txt是会崩溃的译文文本 共4000行。( F; I" ~* t9 u4 r! z/ J7 M6 y
第1次,我们取出A.txt的1-2000行和B.txt的2001-4000行,组合为一个新的字幕文件。
2 j# K5 l( ]3 S# [7 {2 J/ b B导入游戏后如果出错,说明在B.txt的2001-4000行有非法字符。
! ]9 @; r, ]; ^8 P+ i4 i, {; u$ M. n; ~6 C
第2次,我们取出A.txt的1-2000行,B.txt的2001-3000行,A.txt的3001-4000行。7 W. C Y) H* v
导入游戏后如果还是出错,说明在B.txt的2001-3000行有非法字符。
9 M7 r s$ T7 ]) {6 t7 G. L
5 K- j& T3 e& Q. v3 Y3 O. F, D, a2 R如此不断折半缩小范围,很快就能定位到一行上,找到非法字符一般只需要12次左右。
1 Q* h; g2 i% w- D* p- x4 U8 @当然,文本里有问题的地方可能不止一行,但是找到一行以后,找出原因后就可以用替换等方法修正所有行的问题。 |