gpt4 book ai didi

c - 如何将完整的 UTF-8 十六进制值读入 int

转载 作者:行者123 更新时间:2023-11-30 20:20:11 25 4
gpt4 key购买 nike

我想做的是得到一个 int接受 UTF-8-16-32 字符,这样做应该能够判断它是 UTF-8、UTF-16 还是 UTF-32。

我使用 fopen(fp, "rb") 从文本文件读取二进制值。我遇到一个问题,单个字符被分成两个字节。

例如,如果我尝试读取一个字符 CENT SIGN

文本文件input.txt包含:

¢

我得到:

utf code:       LATIN CAPITAL LETTER A WITH CIRCUMFLEX
binary: 11000010
hexadecimal: 0xC2
decimal: 194
character: �

utf code: CENT SIGN
binary: 10100010
hexadecimal: 0xA2
decimal: 162
character: �

utf code: LINE FEED (LF)
binary: 00001010
hexadecimal: 0xA
decimal: 10
character:

代码:

int ch;
while ((ch = fgetc(stream)) != EOF) {
printf(“utf code:\t”);
findCode(ch); // HERE

write(1, “binary: “, 16);
printBits(ch);

printf(“\nhexadecimal:\t%X”, ch);

printf(“\ndecimal:\t%d”, ch);

printf(“\ncharacter:\t%c\n\n”, ch);
}

注意:在 UTF-8 数据库中,二进制值 CENT SIGN0xC2A211000010:10100010

最佳答案

问题是 fgetc 只能读取 1 个字节。

关于c - 如何将完整的 UTF-8 十六进制值读入 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47274765/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com