小编fis*_*shi的帖子

在 C 中打印 UTF-8 字符串的字节

我想打印单词“?esnek”的单个字节,期望打印 7 个字节,因为“?” 以 2 个字节编码,但它会在终端中打印垃圾字符,例如问号。如果我打印出整数值,我会得到这个序列。

-60 -115 101 115 110 101 107
Run Code Online (Sandbox Code Playgroud)

为什么前两个数字是负数?这是我用来尝试的代码。

 char *utfstring = "?esnek";
 for(size_t i = 0; i < strlen(utfstring); i++) {
 printf("%c ", utfstring[i]);
 }
 for(size_t i = 0; i < strlen(utfstring); i++) {
 printf("%d ", utfstring[i]);
 }
Run Code Online (Sandbox Code Playgroud)

我预计前两个值是 c4 8d 因为?根据https://www.utf8-chartable.de/unicode-utf8-table.pl?start=256&unicodeinhtml=dec 进行编码

c encoding utf-8

1
推荐指数
1
解决办法
4614
查看次数

标签 统计

c ×1

encoding ×1

utf-8 ×1