gpt4 book ai didi

c - 为什么 wcwidth 返回 -1 并带有我可以在终端上打印的标志?

转载 作者:太空狗 更新时间:2023-10-29 15:36:08 25 4
gpt4 key购买 nike

为什么这里 wcwidth 返回“-1”(不是可打印的宽字符)宽度“°”(0x0524)?

#include <stdio.h>
#include <wchar.h>
#include <locale.h>

int wcwidth(wchar_t wc);

int main()
{
setlocale(LC_CTYPE, "");

wchar_t wc1 = L'合'; // 0x5408
int width1 = wcwidth(wc1);
printf("%lc - print width: %i\n", wc1, width1);

wchar_t wc2 = L'Ԥ'; // 0x0524
int width2 = wcwidth(wc2);
printf("%lc - print width: %i\n", wc2, width2);

return 0;
}

Output:

合 - print width: 2
Ԥ - print width: -1

最佳答案

当您创建 libc 字符数据库时,很可能 U+0524 不是有效字符。它是在 Unicode 5.2 中添加的。您的字体可能已经包含该字符,但 wcwidth 不会查看使用的是哪种字体。

关于c - 为什么 wcwidth 返回 -1 并带有我可以在终端上打印的标志?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16371418/

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