国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

C語言中判斷一個char*是不是utf8編碼

2020-01-26 14:04:12
字體:
來源:轉載
供稿:網友

C語言中判斷一個char*是不是utf8編碼

里我修改了一下, 純ASCII編碼的字符串也返回true, 因為UTF8和ASCII兼容

實例代碼:

int utf8_check(const char* str, size_t length) {   size_t i;   int nBytes;   unsigned char chr;    i = 0;   nBytes = 0;   while (i < length) {     chr = *(str + i);      if (nBytes == 0) { //計算字節數       if ((chr & 0x80) != 0) {         while ((chr & 0x80) != 0) {           chr <<= 1;           nBytes++;         }         if ((nBytes < 2) || (nBytes > 6)) {           return 0; //第一個字節最少為110x xxxx         }         nBytes--; //減去自身占的一個字節       }     } else { //多字節除了第一個字節外剩下的字節       if ((chr & 0xC0) != 0x80) {         return 0; //剩下的字節都是10xx xxxx的形式       }       nBytes--;     }     i++;   }   return (nBytes == 0); } 

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 二手房| 大姚县| 开鲁县| 五原县| 讷河市| 朔州市| 鸡泽县| 金秀| 宝山区| 抚顺市| 邵阳市| 汪清县| 商水县| 濮阳市| 保康县| 吉隆县| 布拖县| 桂阳县| 海安县| 新营市| 章丘市| 雅安市| 宁陕县| 北碚区| 惠来县| 宣恩县| 三亚市| 江陵县| 东丽区| 栖霞市| 民勤县| 新乐市| 永善县| 宜君县| 江源县| 金堂县| 左权县| 栖霞市| 延津县| 大关县| 九龙县|