c - 用 write() 函数写入 Unicode

标签 c unicode unistd.h

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

我不能使用:

  • 普查尔
  • 设置语言环境
  • printf(实际上练习是重现 printf 函数)

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

最佳答案

正如 Chris 在评论中所写,您需要一个能够理解 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;
}

关于c - 用 write() 函数写入 Unicode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34982406/

相关文章:

c - 将 zSql arg 释放到 sqlite3_prepare_v2?

c - 如何清除gtk、goocanvas表面?

c - 如何以最快的方式读取单个 ascii 字符形式的 unicode 字符串并检测它实际上是 unicode?

c - 使用 Unicode 遍历 OFN_ALLOWMULTISELECT 中的所有文件

c - 无法将 char 指针传递给 gethostname (Linux)

c++ - x/a 与 float 的 x*(1/a) 相同吗?

c - 错误: "unknown type name ip4addr_t"

mysql jdbc 错误的字符串值

c++ - unistd read() 不起作用

c - C 的参数行选项解析