1

好吧,这很“奇怪”,但我似乎无法使用 boost::locale (在 microsoft visual studio 2010 下)将数值转换为字符串并提高词法转换。

int main() {

    boost::locale::generator gen;
    std::locale::global(std::locale(gen("de_DE")));
    std::cout << boost::lexical_cast<double>("1,253") << std::endl;
    return 0;
}

在德语语言环境中,“,”符号应用作十进制标识符。所以上面应该是“1.253”。但是它不起作用(lexical_cast 给出了一个例外) - 使用std::locale::global(std::locale("German_Germany.1252"));确实有效 - 但是我希望使用便携式系统而不是将自己“限制”到微软的命名/代码页。

我将如何使用 boost::locale,或者使用比 std::locale 更便携的本地化?

4

0 回答 0