【发布时间】:2011-08-30 10:02:25
【问题描述】:
我可以使用此代码输出单个字符:
#include <locale.h>
#include <stdio.h>
#include <wchar.h>
main(){
setlocale(LC_CTYPE, "");
wchar_t a = L'Ö';
putwchar(a);
}
如何调整代码以输出字符串?
类似
wchar_t *a = L"ÖÜÄöüä";
wprinf("%ls", a);
【问题讨论】:
-
wprintf(L"%ls", a) 有什么问题?它不适合你吗?
-
Ehmm.. 谢谢你刚刚回答了我的问题。我的代码中缺少 L。
-
也就是说,wchar 的用处不大。它仅适用于 16 位 Unicode,并且不那么便携。 UTF-8(结合用于国际化繁重工作的库,例如 iconv 或 ICU)几乎总是更好的选择。
-
wchar_t在大多数类 Unix 系统上是 32 位,但在 Windows 上是 16 位。 -
你会接受其中一个答案,还是还有什么不清楚的地方?