【问题标题】:Displaying "?" instead of unicode character in C++ Windows显示“?”而不是 C++ Windows 中的 unicode 字符
【发布时间】:2021-08-19 14:41:15
【问题描述】:

我使用 Visual Studio 2019 创建了 C++ 项目,该项目可打印俄语和亚美尼亚语字符。但在命令行打印 ?

Source.cpp

#include <iostream>
using namespace std;

int main() {
    setlocale(LC_ALL, "ru");
    cout << "\u053e абв";
    return 0;
}

输出

? ???

也在编辑器中

当我使用 UTF-8 时,它会输出这个

╨░╨▒╨▓

当我添加显示 的代码页 20861 时? 6

【问题讨论】:

  • 即使您设置了程序的语言环境,您的 C++ 编译器仍在生成(可能)UTF-8 序列。您的终端控制台也可能使用不同的代码页(可能是 UTF-8)。你的编辑简直一头雾水。 i18n 很难。
  • 使用 std::wcout
  • 尝试在开头添加SetConsoleOutputCP(1251); SetConsoleCP(1251);
  • 它给出了 11 个错误
  • 源代码必须与您设置的代码页中的代码页相同。但是不要再这样做了,只需use UTF-8 instead

标签: c++ visual-studio visual-c++ visual-studio-2019


【解决方案1】:

我建议你可以尝试使用the Code Page Identifiers

如下代码:

setlocale(LC_ALL, "20866");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-20
    • 2021-12-30
    相关资源
    最近更新 更多