如何在 C 中使用 unicode 块元素?

how to use unicode blockelements in C?

我想在我的 C 程序中使用 unicode 块来在控制台中显示它们,如 ▇、░ 等等。但是,每当我尝试对 unicode 字符使用转义序列时,我只会收到奇怪的字母,例如:

printf("/u259A"); //259A is the unicode for ▚
Output: ÔûÜ

我查看了如何包含 unicode 字符,然后尝试使用 wchar_t:

#include <locale.h>
#include <stdio.h>
int main(int argc, char const *argv[]) {
  setlocale(LC_ALL, "");
  wchar_t c = "\u259A";
  printf("%c",c);
  return 0;
}

但这只给了我 作为输出而不是 ▚。删除 setlocale() 会给我一个空白输出。我不知道从这一点开始做什么。我唯一看到的是使用 printf("\xB2");,它给了你 。但是我不明白 B2 是从哪里来的,也不知道它代表什么。

所以对我有用的是以下内容:

#include <stdio.h>
#include <fcntl.h>
#include <io.h>

int main(int argc, char const *argv[]) {
  _setmode(_fileno(stdout), _O_U16TEXT);
  wprintf(L"\x2590 \x2554 \x258c \x2592"); //Output : ▐ ╔ ▌ ▒
  return 0;
}

函数 _setmode() 显然是为了在 u16 文本编码上设置控制台。 wprintf() 允许您打印宽字符(以及 unicode)。字符串前的 L"" 向编译器指示以下字符串是 unicode 字符串。感谢大家的时间和答复!