我正在尝试将char*
转换为QString
。这应该是一项微不足道的任务,但问题是,我有以下输入:
item char [512] "N" char [512]
[0] 78 'N' char
[1] 0 '\0' char
[2] 73 'I' char
[3] 0 '\0' char
[4] 70 'F' char
[5] 0 '\0' char
[6] 84 'T' char
[7] 0 '\0' char
[8] 89 'Y' char
[9] 0 '\0' char
[10] 0 '\0' char
注意每个字符'\ 0'后面的空字符。只是尝试转换它只会产生字符串“N”,因为它应该导致字符串“NIFTY”。
我不确定它是unicode还是Ansi string
(事实上我对此并不了解)。任何人都可以解决这里出了什么问题或者我错过了什么?
答案 0 :(得分:0)
这对我有用:
char * chr = "N\0I\0F\0T\0Y\0\0";
QString str = QString::fromUtf16((ushort*)(chr));
qDebug() << str;
答案 1 :(得分:-1)
char name[13] = "StudyTonight";
int namelen = strlen(name);
QString result = QString::fromUtf8((const char *)name,namelen);
qDebug() << result