如何将 UTF-8 数据转换为 QString
Posted
技术标签:
【中文标题】如何将 UTF-8 数据转换为 QString【英文标题】:How to I get the UTF-8 data into a 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”输入了错误的字符串! 【参考方案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;
【讨论】:
以上是关于如何将 UTF-8 数据转换为 QString的主要内容,如果未能解决你的问题,请参考以下文章
如何将qt中的qbytearray类型数据转换成去qstring类型