如何在 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 字符串。感谢大家的时间和答复!
我想在我的 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 字符串。感谢大家的时间和答复!