是否有一种方法可以配置VS Code或Code::Blocks,以便终端可以输出俄语字符?



我已经尝试在vs code中更改编码,但俄罗斯字符一直显示为"?? ">

尝试将setlocale(LC_ALL, "Russian")添加到您的代码开头。

auto utf16_to_utf8 = [](const std::wstring &value) -> std::string {
int len = WideCharToMultiByte(CP_UTF8, 0, value.c_str(), -1, NULL, 0, 0, 0);
if (len)
{
std::string utf8 = std::string(len, '');
WideCharToMultiByte(CP_UTF8, 0, value.c_str(), -1, &utf8[0], len, 0, 0);
return utf8;
}
return std::string();
};
auto utf8_to_utf16 = [](const std::string &value) -> std::wstring {
int len = MultiByteToWideChar(CP_UTF8, 0, value.c_str(), -1, NULL, 0, 0, 0);
if (len)
{
std::wstring utf16 = std::wstring(len, '');
MultiByteToWideChar(CP_UTF8, 0, value.c_str(), -1, &utf16[0], len, 0, 0);
return utf16;
}
return std::string();
};

然后做:std::wcout<<utf8_to_utf16(u8"Приветn");Windows终端在显示UTF-8方面出了名的糟糕,直到最近的Windows 10或11。所以你最好输出UTF-16。

解决方案是勾选"使用Unicode UTF-8支持全球语言";