bool IsTextUtf8(char* lpText,int iLen)
{
int cOctets;
unsigned char chr;
bool bAllAscii = true;
cOctets = 0;
for(int i = 0; i < iLen; ++i)
{
chr = *(lpText + i);
if((chr & 0x80) != 0)
bAllAscii = false;
if(cOctets == 0)
{
if(chr >= 0x80)
{
do{
chr <<= 1;
cOctets++;
}
while((chr & 0x80) != 0);
cOctets--;
if(cOctets == 0)
return false;
}
}
else
{
if((chr & 0xc0) != 0x80)
return false;
cOctets--;
}
}
if(cOctets > 0)
return false;
if(bAllAscii)
return false;
return true;
}

被折叠的 条评论
为什么被折叠?



