【问题标题】:How to I get the UTF-8 data into a QString如何将 UTF-8 数据转换为 QString
【发布时间】:2012-04-03 19:42:06
【问题描述】:

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

字符显示名称[USERNAME_MAX_SIZE];

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

displayName的结构如下:

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

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

【问题讨论】:

  • 您确定转换不正确吗?这看起来很像将 UTF-8 解释为 Latin1。
  • 嗯... fromUtf8 就是答案。这个对我有用。显示一些代码怎么样?
  • 先生们,我的错-我“fromUtf8”输入了错误的字符串!

标签: qt utf-8


【解决方案1】:

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;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-02
    • 2011-07-14
    • 2015-04-13
    • 2011-08-08
    • 2012-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多