Qt char *到QString

时间:2012-10-31 07:37:28

标签: c++ qt encoding char qstring

我正在尝试将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(事实上我对此并不了解)。任何人都可以解决这里出了什么问题或者我错过了什么?

2 个答案:

答案 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