用 write() 函数写入 Unicode
Write Unicode with write() function
我正在做一个需要在终端上编写 Unicode 的练习,
在 <unistd.h>
.
中仅使用 write()
我不会用:
- putchar
- 设置语言环境
- printf(其实练习就是重现
printf
函数)
关于如何执行此操作有任何 "low level" 的建议吗?
正如 Chris 在评论中所写,您需要一个终端(例如 Linux 上的 xterm)来理解 Unicode,然后您就可以编写它们了。所以默认情况下 xterm 理解 UTF8 并设置为代码页,这样这段代码会给你一个 UTF8 笑脸 (☺)。
#include <stdio.h>
#include <unistd.h>
char happy[] = { 0xe2, 0x98, 0xba }; /* U+263A */
int main()
{
write(1, happy, 3);
return 0;
}
我正在做一个需要在终端上编写 Unicode 的练习,
在 <unistd.h>
.
我不会用:
- putchar
- 设置语言环境
- printf(其实练习就是重现
printf
函数)
关于如何执行此操作有任何 "low level" 的建议吗?
正如 Chris 在评论中所写,您需要一个终端(例如 Linux 上的 xterm)来理解 Unicode,然后您就可以编写它们了。所以默认情况下 xterm 理解 UTF8 并设置为代码页,这样这段代码会给你一个 UTF8 笑脸 (☺)。
#include <stdio.h>
#include <unistd.h>
char happy[] = { 0xe2, 0x98, 0xba }; /* U+263A */
int main()
{
write(1, happy, 3);
return 0;
}