【发布时间】:2013-03-27 23:33:58
【问题描述】:
如何打印一些 Unicode 字符?虽然我设置了 UTF-8 编码,但我无法打印它。我在连续的字节流中将十六进制的 Unicode 字符作为 (c2 82 c2 81 c2 80 0) 获取。但是当我试图通过在开头指向一个字符指针来打印它的 Unicode 字符时,它并没有打印出来。为什么?
char s[]={0xc2,0x82,0xc2,0x81,0xc2,0x80,0x00};
printf("%s",s);
在 Linux 环境中使用 C。
【问题讨论】:
-
您在此处提供的
char s[]不以零字符 ('\0') 结尾,因此printf无法工作:它将打印垃圾,直到找到零字符或将进行核心转储。 -
我做了,但程序没有打印任何字符
-
您的终端是否配置为使用 UTF-8?如果不是,它可能会使用 8859-1 或 8859-15 或类似的东西,并将根据该代码集解释字节。
-
你的终端上
locale的输出是什么?对此进行验证并告诉我们。 -
只能显示图形字符。根据定义。