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なのかAnsistringなのかはわかりません(実際、私はそれについてあまり知りません)。誰かがここで何が間違っているのか、私が何が欠けているのかを整理していただけますか?

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 に答える