我正在使用带有\u
编码序列的字符串文字,将它们传递给QString::fromUtf8
,就像在QString::fromUtf8("Precio (\u20AC/k)");
中一样,成功了,但是,我有点苦恼,并阅读cppreference和其他来源,我还不清楚如何将\u20AC
序列翻译成二进制文件。
换句话说,QString::fromUtf8
取代\u20AC
序列是什么? 20AC
代码点的UTF-8表示?它的UTF-16表示?或者是什么?
我读过的大多数资料都说它被翻译成了它的UTF-16表示,这意味着我把这个字符串传递给fromUtf8
时我做错了,但是,它总是工作正常
我是否正确行事?
答案 0 :(得分:1)
未加前缀的字符串文字"..."
的编码是实现定义的。在许多非Windows编译器上,它默认为UTF-8,尽管有时可能会更改;对于GCC,此切换为-fexec-charset
(docs)。
为了获得独立于执行字符集的字符串文字的UTF-8编码,C ++ 11引入了u8"..."
(cppreference)