首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

双字节分割符的有关问题

2012-02-12 
双字节分割符的问题这是我看到的部分代码,判断是否为双字节分隔符。charsChar[3]sChar[2]0sChar[0]sPar

双字节分割符的问题
这是我看到的部分代码,判断是否为双字节分隔符。
char   sChar[3];
sChar[2]   =   0;

sChar[0]=sParagraph[nPosIndex];//Get   a   char
sChar[1]=0;
if(sParagraph[nPosIndex] <0)
{//double   byte   char
nPosIndex+=1;
sChar[1]=sParagraph[nPosIndex];
}
nPosIndex+=1;

我的问题是为什么if(sParagraph[nPosIndex]   <   0)就可以判断其为双字节字符?
不是双字节符号的第一字节是在161~163么

[解决办法]

//解释转自其他来源
GB2312的字库里每个汉字两个字节,每个字节都是> 128的;但后来的扩展字符集就不是了(还是觉得不够大了),第一个字节> 128,第二个字节就无所谓了。
所以如果是扩展字符集的话,就只能从第一个字符开始判断,如果是 <128,那么是单字节字符;如果> 128,那么是个双字节字符。一直找到你要判断的字符为止。


if(sParagraph[nPosIndex] < 0) --> 1000 0000 --> 128

热点排行