小编Fro*_*zax的帖子

使用 std::locale 格式化法语数字时,UTF-8 数据无效

我正在使用以下代码使用正确的语言环境来格式化数字。使用法语时,数字在数字组之间具有“不间断空格”。我得到的字符串似乎无效。

    std::stringstream ss;
    ss.imbue(std::locale("fr_FR.UTF-8"));
    ss << 1234;
    auto result = ss.str();
Run Code Online (Sandbox Code Playgroud)

在这里,result是:{49, -62, 50, 51, 52}。不间断空格用 -62 表示。在我看来它是无效的 UTF-8,对吧?

我希望result是:({49, -62, -96, 50, 51, 52}在这种情况下,这似乎是有效的,不间断空格用两个字符表示:-62、-96)。

我错过了什么吗?谢谢你的帮助。

c++ locale std utf-8

3
推荐指数
1
解决办法
113
查看次数

标签 统计

c++ ×1

locale ×1

std ×1

utf-8 ×1