c ++全局语言环境 - 打印数字时的未知符号

时间:2016-04-29 22:15:06

标签: c++ locale

我按照here

所述添加了语言环境
sudo locale-gen ru_RU
sudo locale-gen ru_RU.UTF-8
sudo update-locale

现在我想测试这样的输出:

std::cout << std::locale("").name().c_str() << '\n';
std::cout << 1000.01 << '\n';
std::locale::global(std::locale("ru_RU.utf8") );
std::cout.imbue(std::locale());
std::cout << std::locale().name().c_str() << '\n';
std::cout << std::fixed << 12345678.01 << '\n';

得到这个:

en_US.UTF-8
1000.01
ru_RU.utf8
12�345�678,010000

为什么我会得到这个未知的符号?

UPD:

在十六进制中它是A0(但仅适用于我的系统):

31 32 A0 33 34 35 A0 36 37 38 2C 30 31 30 30 30 30 0A  0

0 个答案:

没有答案