【发布时间】:2016-08-01 11:48:52
【问题描述】:
我想将十六进制和 utf16 编解码器的字符串转换为 QString 例如,就像我从这段代码中获得的:
QString str1 = QString::fromWCharArray(L"\x0633\x0644\x0627\x0645"); // what I want
但是当我尝试以下代码时,一切都出错了,正确的方法是什么。
QByteArray hex = QByteArray::fromHex("0633064406270645");
// wrong text in str2 it should be equal to str1
QString str2 = QString::fromUtf16((char16_t*)hex.data());
【问题讨论】:
-
如果你只是这样做:
QString str2(hex);? -
将str1转换为UTF16 QBytearray,使用toHex,比较是否得到0633。
-
@wasthishelpful 不,这根本不起作用
-
@hyde this str1.toLatin1().toHex();给了我'3f',但我实际上想要一种将 utf16 十六进制转换为 QString 的方法,我认为它已经包含 16 位字符。我怎样才能得到与 str1 相同的字符串