我正尝试从C输出像安、蠀、☃这样的东西。
#include <wchar.h>
int main()
{
fwprintf(stdout, L"안, 蠀, ☃\n");
return 0;
}
输出是?,?,?
我该如何打印这些字符?
编辑:
#include <wchar.h>
#include <locale.h>
int main()
{
setlocale(LC_CTYPE, "");
fwprintf(stdout, L"안, 蠀, ☃\n");
return 0;
}
这就是解决的方法。输出结果为安、蠀和☃。但是在我的urxvt中,中文字符和雪人会显示为方框,这可能是因为我没有启用这些区域设置。
$ locale -a
C
en_US
en_US.iso88591
en_US.iso885915
en_US.utf8
ja_JP.utf8
ko_KR
ko_KR.euckr
ko_KR.utf8
korean
korean.euc
POSIX
zh_CN.utf8
我需要启用哪个语言环境才能显示中文字符和雪人?也许我需要字体吗?
上面的程序在Windows上是否可以运行?