C ++字符串中的挪威字符

时间:2017-01-23 20:45:34

标签: c++ character-encoding

我正在使用C ++中的字符串,并对如何处理挪威字符提出疑问。

如果我运行以下代码;

int main()
{
    string norwegian = "BLÅBÆRSYLTETØY";
    for (auto &c : norwegian)
        cout << c << " => " << static_cast<int>(c) << endl;

    return 0;
}

cmd的输出变为:

B => 66
L => 76
┼ => -59
B => 66
ã => -58
R => 82
S => 83
Y => 89
L => 76
T => 84
E => 69
T => 84
Ï => -40
Y => 89

请注意,三个挪威字符打印不正确,ASCII值为负。

有没有办法处理字符串以便它使用正确的字符映射?

修改

解决方案是将代码页从ANSI更改为UTF-7,这可以通过在执行字符串处理的代码之前添加它来完成;

system("chcp 65000");

0 个答案:

没有答案