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'?

不会,因为该函数并不是返回一个字符串,而是返回一个整数值。

C语言判断UTF-8编码中中文起始字节的函数

原文地址: https://www.cveoy.top/t/topic/m8IA 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录