0

我正在尝试转换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(实际上我对此了解不多)。谁能解决这里出了什么问题或我错过了什么?

4

2 回答 2

1

这对我有用:

    char * chr = "N\0I\0F\0T\0Y\0\0";
    QString str = QString::fromUtf16((ushort*)(chr));
    qDebug() << str;
于 2012-10-31T08:53:24.400 回答
-1
 char name[13] = "StudyTonight";


 int namelen = strlen(name);

 QString  result = QString::fromUtf8((const char *)name,namelen);

 qDebug() << result
于 2020-08-19T10:52:50.717 回答