QString :: fromUtf8(str)和\ u编码的字符序列

时间:2016-10-12 17:19:10

标签: c++ encoding utf-8 qstring

我正在使用带有\u编码序列的字符串文字,将它们传递给QString::fromUtf8,就像在QString::fromUtf8("Precio (\u20AC/k)");中一样,成功了,但是,我有点苦恼,并阅读cppreference和其他来源,我还不清楚如何将\u20AC序列翻译成二进制文件。

换句话说,QString::fromUtf8取代\u20AC序列是什么? 20AC代码点的UTF-8表示?它的UTF-16表示?或者是什么?

我读过的大多数资料都说它被翻译成了它的UTF-16表示,这意味着我把这个字符串传递给fromUtf8时我做错了,但是,它总是工作正常

我是否正确行事?

1 个答案:

答案 0 :(得分:1)

未加前缀的字符串文字"..."的编码是实现定义的。在许多非Windows编译器上,它默认为UTF-8,尽管有时可能会更改;对于GCC,此切换为-fexec-charsetdocs)。

为了获得独立于执行字符集的字符串文字的UTF-8编码,C ++ 11引入了u8"..."cppreference