字符串操作(二)

来源:互联网 发布:党规党纪面前知敬畏 编辑:程序博客网 时间:2024/06/05 19:09

接上篇。

(1)判断是否utf8编码

SERVER_DECL bool _IsStringUTF8(const char* str){int   i;unsigned char cOctets;  // octets to go in this UTF-8 encoded characterunsigned char chr;bool  bAllAscii = TRUE;long iLen = (long)strlen(str);cOctets = 0;for(i = 0; i < iLen; i++){chr = (unsigned char)str[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;}


 

原创粉丝点击