使用write()函数编写Unicode

时间:2016-01-24 22:37:59

标签: c unicode unistd.h

我正在做练习,我需要在终端上编写Unicode, 仅在<unistd.h>中使用 write()

我无法使用:

  • 的putchar
  • 的setlocale
  • printf(事实上,练习正在复制printf功能)

关于如何执行此操作的任何“低级别”建议?

1 个答案:

答案 0 :(得分:3)

正如克里斯在评论中写道的那样,你需要一个了解Unicode的终端(例如Linux上的xterm),然后你就可以编写它们了。因此,默认情况下,xterm会理解UTF8并设置为代码页,以便此代码为您提供UTF8笑脸(☺)。

#include <stdio.h>
#include <unistd.h>

char happy[] = { 0xe2, 0x98, 0xba };  /* U+263A */

int main()
{
   write(1, happy, 3);
   return 0;
}