C语言判断UTF-8编码中中文起始字节的函数
C语言判断UTF-8编码中中文起始字节的函数
static int is_utf8_chinese_start(unsigned char byte) {
if ((byte & 0x80) == 0) {//判断一个字节是否是UTF-8编码的起始字节
return 0;
}
int count = 0;
while ((byte & 0x80) != 0) {
count++;
byte <<= 1;
}
if (count != 1 && count != 2 && count != 3) {
return 0;
}
return 1;
}
该函数接收一个字节作为参数,判断该字节是否是UTF-8编码中中文的起始字节。
原理:
UTF-8编码使用可变长度的字节来表示字符。中文的UTF-8编码使用3个字节表示。该函数通过判断字节的二进制位来判断是否是中文的起始字节。
使用方法:
该函数返回一个整数值。如果该字节是UTF-8编码中中文的起始字节,则返回1,否则返回0。
最后一位会不会加上'\0'?
不会,因为该函数并不是返回一个字符串,而是返回一个整数值。
原文地址: https://www.cveoy.top/t/topic/m8IA 著作权归作者所有。请勿转载和采集!