当前位置:   article > 正文

QString中文编码_qstring arg 中文

qstring arg 中文

1、背景

QString sCheckUpUrl(QString("seriesId=8&unit=t&name=%1").arg(QString::fromUtf8(QUrl::toPercentEncoding(QStringLiteral("螺纹@钢"))));

QString sGetWebSiteUrl =QString("%1%2").arg(c_sPriceCheckUpUrl).arg(sCheckUpUrl);

在Url中发送带有特殊字符的中文的字符串,需要把字符串转换为UTF-8,并转义,可以使用QUrl::toPercentEncoding(...),而后拼接进QString时需要告诉QString字符串是什么编码,因为在你

QString 内部采用的是UnicodeUnicode 包含 ASCII 和 Latin-1 作为子集,不告诉它的情况下,它默认选择了Latin-1会出现乱码。

 

 2、原理

    QString是不存在中文支持问题的,很多人遇到问题,并不是本身 QString 的问题,而是没有将自己希望的字符串正确赋给QString。

    很简单的问题,"我是中文"这样写的时候,它是传统的char 类型的窄字符串,我们需要的只不过是通过某种方式告诉 QString这四个汉字采用的那种编码。而问题一般都出在很多用户对自己当前的编码没太多概念,

 

下面这个小程序,估计大家会感到比较亲切。似乎有相当多的中文用户尝试写过这样的代码:

 

#include<QtGui/QApplication>

#include<QtGui/QLabel>

 

int main(int argc,char **argv)

{

QApplication app(argc, argv);

QStringa = "我是汉字";

QLabel label(a);

label.show();

return app.exec();

}

编码,保存,编译,运行,一切都很顺利,可是结果呢:

 <

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号