汉字的字符串copy的问题
本人在编写一个类似翻译软件的过程中发现这样一个难题,请各位帮忙:
思路是这样的,在一个句子中,可能包含有已知数据库中包含的字符串(也就是单词),但也可能不包含。现在需要把句子中所包含的这些词语全部挑选出来并依据数据库翻译为外语(英语或者是法语等)。为了找到这样的词语,只能逐个查找(因为词语的长度也是不一定的)。
考虑到还有可能是从英语翻译到汉语或者是其它语言,在每次查找的时候是逐个字节查找的。
比如:
for i:=1 to 20 do
begin
str:=trim(copy(TargetTxt,1,i));
TransStr:=LookUp(Str,FindIt);
if not findit then continue
else then
//用TransStr替换Str
end;
上面的代码存在一个问题,因为每个汉字是占两个字符的位置,所以当I为偶数的时候就出现问题,也就是我们无法识别的部分。这本来是意料之中的事情。
但问题就在于,半个字符为什么总是一个问号?而且要和字符串的标志组成一个问号,这样我的SQL语句就无法执行了。
不要建议我采用每次推进两个字节长度,因为你要考虑到汉语中可能还有英语,尤其是奇数个英语的话就更乱套了。
拜托各位了,谢谢!