如何将UTF-8数据转换为QString

时间:2012-04-03 19:42:06

标签: qt utf-8

通过服务器API,我正在使用结构成员获取联系信息:

char displayName [USERNAME_MAX_SIZE];

其中一个名字是带有特殊字符的欧洲名称:“PerSpånt”

displayName的结构如下:

enter image description here

当我通过“fromUtf8”函数将'displayName'导入QString时,我得到以下QString: enter image description here

如何在不将特殊字符转换为两个奇怪字符的情况下将正确的字符串输入到我的QString中?

1 个答案:

答案 0 :(得分:2)

FWIW,使用Qt 4.7.4,这对我有用并且不起作用。

#include <iostream>
#include <string>

#include <QDebug>
#include <QString>

int main()
{
    char name[7] = "Sp__nt";
    name[2]=-61;
    name[3]=-91;

    std::cout << name << std::endl;                           // works

    qDebug() << QString::fromUtf8( name );                    // does not work
    qDebug() << QString::fromAscii( name );                   // works
    qDebug() << QString::fromLatin1( name );                  // works
    qDebug() << QString::fromStdString( name );               // works

    return 0;
}