gpt4 book ai didi

c - 如何使用 Visual Studio 在 C 中将 Unicode 打印到输出控制台?

转载 作者:可可西里 更新时间:2023-11-01 09:47:12 24 4
gpt4 key购买 nike

如问题所述,我必须做些什么才能将 Unicode 字符打印到输出控制台吗?我必须使用什么设置?现在我有这段代码:

wchar_t* text = L"the 来";
wprintf(L"Text is %s.\n", text);
return EXIT_SUCCESS;

并打印:文本是 ?。

我已经尝试将输出控制台的字体更改为 MS Mincho、Lucida Console 和其他一些字体,但它们仍然不显示日文字符。

那么,我该怎么办?

最佳答案

这是适合我的代码 (VS2017) - 启用了 Unicode 的项目

#include <stdio.h>
#include <io.h>
#include <fcntl.h>

int main()
{
_setmode(_fileno(stdout), _O_U16TEXT);
wchar_t * test = L"the 来. Testing unicode -- English -- Ελληνικά -- Español." ;

wprintf(L"%s\n", test);
}

这是控制台

output

将其复制到 Notepad++ 后,我看到了正确的字符串

来了。测试 unicode -- 英语 -- Eλληνικì -- 西类牙语。

操作系统 - Windows 7 英文版,控制台字体 - Lucida Console

根据评论进行编辑

我试图修复上面的代码以在 Windows 10 上使用 VS2019,我能想到的最好的就是这个

#include <stdio.h>
int main()
{
const auto* test = L"the 来. Testing unicode -- English -- Ελληνικά -- Español.";

wprintf(L"%s\n", test);
}

当“按原样”运行时,我明白了 Default console settings

当它在控​​制台设置为 Lucida Console fond 和 UTF-8 编码的情况下运行时,我看到了 Console switched to UTF-8

作为显示为空矩形的来字符的答案 - 我想是字体的限制,它不包含所有 Unicode 字形

当文本从最后一个控制台复制到 Notepad++ 时,所有字符都正确显示

关于c - 如何使用 Visual Studio 在 C 中将 Unicode 打印到输出控制台?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46512441/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com