gpt4 book ai didi

unicode - 通过 C++ 程序在 PowerShell 中打印 unicode 字符

转载 作者:行者123 更新时间:2023-12-04 23:33:15 24 4
gpt4 key购买 nike

我的最终目标是通过 C++ 程序将一些非拉丁文本输出写入 Windows 中的控制台。

cmd.exe 让我无处可去,所以我得到了最新的 Shiny 版本的 PowerShell(支持 unicode)。我已经确认我可以

  • 输入非 unicode 字符和
  • 查看来自 Windows 命令的非 unicode 控制台输出(如“dir”)

  • 例如,我有这个文件,“京语.txt”(京语是韩语字母表中的第一个字母),我可以得到这样的输出:
    PS P:\reference\unicode> dir .\가.txt

    Directory: P:\reference\unicode

    Mode LastWriteTime Length
    Name
    ---- ------------- ------
    ----
    -a--- 1/12/2010 8:54 AM 0 가.txt

    到现在为止还挺好。但是使用 C++ 程序写入控制台不起作用。
    int main()
    {
    wchar_t text[] = {0xAC00, 0}; // 가 has code point U+AC00 in unicode
    wprintf(L"%s", text); // this prints a single question mark: "?"
    }

    我不知道我错过了什么。我可以输入并在控制台上看到 사 的事实似乎表明我有三个需要的部分(unicode 支持、字体和字形),但我一定是弄错了。

    我也试过“chcp”,但没有任何运气。我在我的 C++ 程序中做错了什么吗?

    谢谢!

    最佳答案

    从 printf 文档:

    wprintf and printf behave identically if the stream is opened in ANSI mode.



    看看这个 blog post .它有这个漂亮的简短列表:
    #include <fcntl.h>
    #include <io.h>
    #include <stdio.h>

    int main(void) {
    _setmode(_fileno(stdout), _O_U16TEXT);
    wprintf(L"\x043a\x043e\x0448\x043a\x0430 \x65e5\x672c\x56fd\n");
    return 0;
    }

    关于unicode - 通过 C++ 程序在 PowerShell 中打印 unicode 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2107778/

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