utf8等效显示不正确

时间:2018-04-05 05:41:21

标签: c++

我正在使用以下代码

int main()
{
    std::string str="\xc2b1";
    std::cout << str;
}

现在根据this c2b1相当于PLUS-MINUS SIGN 但是当我在coliru上运行此代码时,我得到符号

这是编译器的问题吗?或者我做错了什么我期待符号

±

任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:5)

\xc2b1向编译器询问一个值为0xc2b1的字节,这在几乎任何具有8位字节的“普通”平台上是不可能的。

您链接的网站试图说明的是代码点(≈字符)U + 00B1表示为序列 2 UTF-8代码单元(=字节),特别是C2 B1。因此,您必须将两个字节写为两个单独的转义序列,即"\xc2\xb1"