gpt4 book ai didi

控制台不输出unicode字符

转载 作者:行者123 更新时间:2023-11-30 16:27:41 25 4
gpt4 key购买 nike

我目前正在制作一款控制台俄罗斯方 block 游戏,以学习 C 语言的基础知识。但是,我无法在控制台上打印任何 Unicode 字符。人们只是使用printf(“■□□□■■■□□■■□□■■");但这对我不起作用。另外,我也无法在控制台中手动键入 Unicode 字符。

最佳答案

要将 Unicode 直接写入控制台,您应该使用宽字符 API 并启用 stdout 以使用 UTF-16。您的源文件应以 UTF-8 with BOM 格式保存(至少使用 Microsoft 编译器):

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

int main()
{
_setmode(_fileno(stdout),_O_U16TEXT);
wprintf(L"░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±\n");
wprintf(L"\u0518\n"); // CYRILLIC CAPITAL LETTER YAE U+0518
}

输出:

░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±
Ԙ

您的输出将根据打印字符的字体支持而有所不同。第一行字符通常在美国 Windows 10 上受支持。第二行是正常美国代码页之外的 Unicode 字符,但受 Consolas 字体支持。它是通过转义代码使用其 Unicode 代码点指定的,但可以通过 Windows 字符映射表等工具或安装适当的输入法编辑器 (IME) 直接在源中键入。

关于控制台不输出unicode字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52668336/

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