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