【问题标题】:Print unicode in windows console在 Windows 控制台中打印 unicode
【发布时间】:2014-10-22 08:08:52
【问题描述】:

我正在尝试使用 c++ 在控制台窗口中打印 Unicode 符号 这是我的代码

_setmode(_fileno(stdout), _O_U16TEXT);
std::wcout  << L"\u2B24"; 

奇怪的是,这段代码为某些 Unicode 提供了正确的输出,而不是(它打印问号而不是字符)。我不知道为什么。 例如适用于this(\u061F) 而不适用于this(\u2B24)

知道我缺少什么吗?

编辑:

代码:std::wcout &lt;&lt; L"Test-"&lt;&lt;L"\u061F"&lt;&lt; L"-Test" &lt;&lt; std::endl;

输出:Test-?-Test

【问题讨论】:

  • 定义“作品”。特别要区分显示和存储。你能把那个字符复制回来,然后它就被正确存储了。
  • @ 干杯和hth。 - Alf:对不起,我没明白你的意思?
  • 在\u2B24前后添加一些普通文字。将其输出到控制台。从控制台复制并粘贴到例如Windows 的“写入”。或字。我已经检查过“写”可以在 Windows 8.1 中显示该字符,但您可以通过键入 2B24 并按 Alt X 来检查它。请注意,这是在一个组中,例如Chrome 浏览器处理不好。
  • 它当然可能取决于控制台窗口中配置的字体。如果字体没有您引用的 Unicode 条目,它将不会显示。您可以通过查看控制台窗口属性来检查这一点,并使用字符映射来验证字体是否具有该字符。
  • @icabod:是的,伙计,你是对的。您可以发布作为答案!

标签: c++ windows unicode


【解决方案1】:

这可能取决于配置为由控制台窗口使用的字体。如果正在使用的字体没有您引用的 Unicode 条目,它将不会显示它。您可以在命令窗口的“属性”中检查您使用的字体。然后在MS提供的Character Map应用程序中打开该字体,就可以查看有哪些code可用。

顺便说一句,您可以add fonts to the Console window。但是,您可能需要记住,运行您的软件的其他人可能没有配置与您相同的字体。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-11
    • 2015-04-15
    • 1970-01-01
    • 2011-03-02
    • 2021-04-09
    相关资源
    最近更新 更多