我想用 C 写一个宽字符到一个文件。
这是我所做的,但它似乎不起作用...文件仍然是空的。
wchar_t c = 0x2592;
FILE *file;
file = fopen("foo.txt","w");
fputwc(c, file);
当然我把 setlocale(LC_ALL, "fr_FR.utf8");
放在了 main 函数中。
请您参考如下方法:
更改 setlocale 参数,在我更改后它对我有用:
setlocale(LC_CTYPE, "fr_FR");
编辑:以上我在 Mac OS X 上测试过。它似乎工作正常,输出文件有 3 个字节。
然后,当我在 Linux 机器 (OpenSuse 11) 上尝试相同的操作时,它的工作方式有所不同:结果文件只有一个字节...所以我将其改回 setlocale(LC_ALL, "fr_FR.utf8") ;
它看起来工作正常,输出文件有 3 个字节......所以它似乎有点依赖于系统,函数是 POSIX,但我认为它们的工作方式取决于你安装的语言或其他东西像那样...所有函数都返回错误代码,您应该检查它们。阅读每个功能的手册,看看它们可以返回哪些错误代码。