计算utf-8字符个数问题函数,现在有很多界面要计算字符个数
int GetUtf8CharNum(const char* pszUtf8Str, int& dwTotalLen)
{
int dwCharNum = 0;
dwTotalLen = 0;
if (pszUtf8Str == NULL)
{
return 0;
}
int dwStrLen = strlen(pszUtf8Str);
while (*pszUtf8Str)
{
if (*pszUtf8Str > 0x00 && *pszUtf8Str <= 0x7F) //处理单字节UTF8字符(英文字母、数字)
{
dwCharNum++;
dwTotalLen++;
pszUtf8Str++;
}
else if (((*pszUtf8Str) & 0xE0) == 0xC0) //处理双字节UTF8字符
{
dwCharNum++;
dwTotalLen += 2;
pszUtf8Str += 2;
}
else if (((*pszUtf8Str) & 0xF0) == 0xE0) //处理三字节UTF8字符
{
dwCharNum++;
dwTotalLen += 3;
pszUtf8Str += 3;
}
}
return dwCharNum;
}