我正在使用以下代码
int main()
{
std::string str="\xc2b1";
std::cout << str;
}
现在根据this c2b1相当于PLUS-MINUS SIGN 但是当我在coliru上运行此代码时,我得到符号
�
这是编译器的问题吗?或者我做错了什么我期待符号
±
任何建议都将不胜感激。
答案 0 :(得分:5)
\xc2b1
向编译器询问一个值为0xc2b1的字节,这在几乎任何具有8位字节的“普通”平台上是不可能的。
您链接的网站试图说明的是代码点(≈字符)U + 00B1表示为序列 2 UTF-8代码单元(=字节),特别是C2 B1。因此,您必须将两个字节写为两个单独的转义序列,即"\xc2\xb1"
。