C语言中判断一个char*是不是utf8编码分享

—-想了解C语言中判断一个char*是不是utf8编码分享的全部内容且更多的C语言教程关注<计算机技术网(www.ctvol.com)!!>

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);   }   

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/488189.html

(0)
上一篇 2020年11月12日
下一篇 2020年11月12日

精彩推荐