【问题标题】:How to print qubic meter in C++ with unicode?如何使用 unicode 在 C++ 中打印立方米?
【发布时间】:2016-05-05 13:55:38
【问题描述】:

在这个页面(How to print Unicode character in C++?)的引导下,我可以打印俄语“ф”。但是当尝试打印“m³”(\u 33a5)时,我得到了一个“?”。

请任何人都可以帮助我。

【问题讨论】:

    标签: c++ windows unicode


    【解决方案1】:

    控制台通常不支持显示 unicode 字符。尝试解决这个问题Unicode characters in Windows command line - how?

    【讨论】:

    • 是的,因为 Windows 通常不支持 Unicode :)
    • @RuslanOsmanov:Windows 本身支持 Unicode——它在许多 API 中广泛使用 UTF-16。但是,cmd 默认为旧代码页(精确的页面由您的区域设置确定)并且需要显式切换到 Unicode 模式。
    • 那么是否意味着如果m^3输出到文件而不是控制台,一切都会正确?
    • @BenjaminBarenblat 命令窗口也支持完整的 UTF-16,如果您使用控制台 API 与之交互(并且所选字体包含您需要的字符)。只有基于字符的界面受到影响。不幸的是,拥有一个命令窗口的全部意义在于使用基于字符的界面。
    【解决方案2】:

    试试这个:

    #include <iostream>
    #include <fcntl.h>
    #include <io.h>
    
    int main()
    {
        _setmode(_fileno(stdout), _O_U16TEXT);
        std::wcout << L"m\u00B3" << std::endl;
        return 0;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-26
      • 2016-04-04
      • 2016-06-06
      • 1970-01-01
      相关资源
      最近更新 更多