C++区域货币显示-斯拉夫货币问题



我必须使用区域设置格式在c++程序中显示一些货币值。对于en_UStr_TR这样的区域设置,一切都很正常。然而,在pl_PLcs_CZ中,结果如下:1�235,45 zł。我试图用thousands_sep()方法识别这个神秘的字符,结果表明这个字符代码是8239,这很荒谬,因为它指的是汉字船.是应该是这样,还是我的终端有问题?顺便说一下,我正在使用Manjaro Linux。

这帮助我解决了问题:如何在Linux/OSX上打印wstring?

正如Hans Passant所指出的,这个奇怪的字符是一个狭窄的非中断空间,当我试图在终端中打印它时,我遇到了一个问题。根据上面链接的答案,我在程序的开头放了std::setlocale(LC_ALL, ""),这很有帮助——现在所有狭窄的非中断空格以及其他unicode字符都可以使用std::coutstd::wcout正确打印。

最新更新