我按照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