|

楼主 |
发表于 2004-10-10 10:57:43
|
显示全部楼层
if(string < 0 && string[i+1] != '\0') /*not ascii*/
i += 2;
就是这句关键呀。
因为ascii为0x00 - 0x7f,
其他字体编码的高位一般都是大于0x7f(0111 1111)的字结构。
在计算机中以补码形式存在为:1xxx xxxx
翻译成十进制就是-x,
如果不对其进行处理就有可能出现一个汉字和一个词的前一个字的低位和后一个字的高位匹配,
例如
“恋” ~ “土地” “闪电”
有了这句将汉字跳过就不会有问题了。
不知道我说得明白否? |
|