C语言中怎么判断utf8编码,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
实例代码:
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);
}
看完上述内容,你们掌握C语言中怎么判断utf8编码的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。