#include <stdio.h>
#include <iostream>
#include <locale>
int main()
{
const wchar_t *str = L"\u041F\u043E\u0440\u044F\u0434\u043E\u043A";
std::locale::global(std::locale(""));
std::wcout << str << std::endl;
}
这是一段以UTF-32 wchar_t字符串输出俄语短语的代码:
我认为这是eclipse控制台或程序中的错误配置,因为,例如,其他只在Eclipse中运行我的代码的人他们see正确output。
有人可以解释这种混乱吗?设置所有部分(OS,gcc,终端,Eclipse,源......)以输出以UTF-32 wchar_t字符串存储的国际符号的正确方法是什么?
作为旁注,当我们拥有UTF-32时,为什么还要关心这一切呢?这应该足以让我们知道里面是什么......
答案 0 :(得分:0)
事实证明,其他代码更改了区域设置。