将wchar打印到Linux控制台?

将wchar打印到Linux控制台?,第1张

将wchar打印到Linux控制台?

这很有趣。显然,编译器将omega从UTF-8转换为UNICODE,但libc某种程度上将其弄乱了。

首先:

%c
-format说明符期望一个
char
(即使在wprintf
-version 中也是如此),因此您必须指定
%lc
(并因此指定
%ls
字符串)。

其次,如果您像这样将语言环境设置为运行代码

C
(它不会自动从环境中获取)。您必须
setlocale
使用空字符串进行调用以从环境中获取语言环境,因此libc再次感到高兴。

#include <stdio.h>#include <wchar.h>#include <stdlib.h>#include <locale.h>int main() {    int r;    wchar_t myChar1 = L'Ω';    setlocale(LC_CTYPE, "");    r = wprintf(L"char is %lc (%x)n", myChar1, myChar1);}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4910668.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-12
下一篇 2022-11-12

发表评论

登录后才能评论

评论列表(0条)

保存