当前位置: 首页 > news >正文

个人免费网站建设教程百度seo公司

个人免费网站建设教程,百度seo公司,网站建设的设立方式,做网站推广哪家公司好Qt专栏:http://t.csdnimg.cn/C2SDN 目录 1.引言 2.原因分析 3.源文件的编码格式修改方法 4.程序内部使用的默认编码格式修改方法 5.QString转std::string的方法 6.总结 1.引言 在编写Qt程序的时候,或多或少都可能遇到用QString时候,明明…

Qt专栏:http://t.csdnimg.cn/C2SDN

目录

1.引言

2.原因分析

3.源文件的编码格式修改方法

4.程序内部使用的默认编码格式修改方法

5.QString转std::string的方法

6.总结


1.引言

        在编写Qt程序的时候,或多或少都可能遇到用QString时候,明明自己写的是中文,但是在界面上显示出来却是乱码,最终的原因都是源代码的文件格式和程序中字符默认的编码方式不匹配造成的。下面就这个原因仔细分析分析。

2.原因分析

        默认情况下,QtCreator内部的字符编码方式是utf-8,vs(如VS2019)内部的字符编码方式是gbk。windows上一般是gbk,其他平台一般utf-8。

        源代码的文件格式,在QtCreator添加的文件(.h、.cpp等)默认都是utf-8编码,在vs中添加的文件(.h、.cpp等)默认都是GB2312编码。文件格式可以通过EditPlus、Notepad++或其它工具查看,下面是Notepad++查看到的文件编码方式:

       当然也可以修改文件的编码格式。

        Qt界面内容显示都是通过QString来传值的,QString内部使用的Unicode编码,特别是有中文时,一般使用QString::fromLocal8Bit来加载中文,如:

  QString text = QString::fromLocal8Bit("设备属性");

        关于QString::fromLocal8Bit的讲解,可以查看我的另外一篇博客:

QString的toStdString、toLocal8bit和toLatin区别_tolocal8bit tolatin1 tostdstring-CSDN博客

        通过上述分析,出现乱码来自三方面的原因:

        1)  源文件的编码格式

        2)  程序(QtCreator、VS2019等)内部使用的默认编码格式

        3)  QString加载中文的方式

        在用QString::fromLocal8Bit或QStringLiteral加载中文的时候,保持源文件的编码格式和程序内部默认的编码方式一样就不会出现中文乱码。

Qt6之QStringLitertal源码分析_qstring源码分析-CSDN博客

3.源文件的编码格式修改方法

        上面讲了源文件的编码格式可以通过EditPlus、Notepad++等工具修改,还可以通过VS来修改,步骤如下:

        第一步:

        第二步:

       OK。

4.程序内部使用的默认编码格式修改方法

方法1:使用QTextCodec

#include "MainWindow.h"#include <QApplication>
#include <QTextCodec>int main(int argc, char *argv[])
{QApplication a(argc, argv);//设置内部编码方式QTextCodec* codec = QTextCodec::codecForName("GB2312");QTextCodec::setCodecForLocale(codec);MainWindow w;w.show();return a.exec();
}

方法2:在源码开头添加   #pragma  execution_character_set("utf-8")

如下示例:

用预处理命令  #pragma execution_character_set("utf-8")将cpp编码设置为utf-8。

方法3:如果在Visual Studio中,直接可以使用 /utf-8 选项将源字符集和执行字符集指定为使用 UTF-8 编码的字符集。 它等效于在命令行上指定 /source-charset:utf-8 /execution-charset:utf-8。

        设置步骤如下:

        1)打开项目“属性页” 对话框。 有关详细信息,请参阅在 Visual Studio 中设置 C++ 编译器和生成属性。

        2)选择“配置属性”>“C/C++”>“命令行”属性页。

        3)在“附加选项”中,添加 /utf-8 选项以指定首选编码。

        4)选择“确定”以保存更改 。

        如下图所示:

5.QString转std::string的方法

        直接用QString的toStdString就有可能出现中文乱码。

        QString转std::string乱码通常是由于编码不一致导致的。Qt默认使用的编码可能是UTF-8,而std::string可能默认使用的是系统的本地编码,如GBK。

        一般使用QString::toLocal8Bit()先将QString转为QByteArray,然后使用std::string的构造函数转为std::string。代码如下:

QString qStr = QString::fromUtf8("你好,世界");
std::string str = qStr.toLocal8Bit().constData();

6.总结

        你们在使用Qt编程的过程中,出现过中文乱码的情况吗?欢迎留言讨论。

参考:

/utf-8(将源字符集和执行字符集设置为 UTF-8) | Microsoft Learn

http://www.hkea.cn/news/440635/

相关文章:

  • 做众筹的网站关键词网站推广
  • 做网站 页面自适应渠道推广
  • 广东企业网站建设策划高端网站设计公司
  • wordpress文章批量编辑网站优化方案模板
  • 北京互联网公司开发的网站今日关注
  • 网站限制上传图片大小免费网络推广100种方法
  • 提供网站建设服务的网站价格快速推广
  • 政府网站建设原则 统筹规划进入百度官网
  • 网站如何做等级保护谷歌搜索引擎363
  • 天河网站建设网络推广不属于网络推广方法
  • 阜阳中国建设银行官网站百度提交入口网站网址
  • 游戏网站怎么建设广告营销公司
  • 韩城做网站b2b平台推广网站
  • 网站建设课程设计摘要生活中的网络营销有哪些
  • 简单网站建设优化推广100个电商平台
  • 网站建设的仿站seo顾问收费
  • 珠宝行业做网站的好处株洲seo排名
  • java web开发网站开发cpa推广接单平台
  • 广西南宁网络营销网站网站权重优化
  • 黄山网站设计公司营销网站建设多少钱
  • 网站建设招标评分表湖南关键词优化推荐
  • 淘宝上成都网站建设如何制作视频网站
  • 最吃香的男生十大手艺5g网络优化
  • 河源哪里做网站网络项目怎么推广
  • 网站闭关保护怎么做广州百度seo 网站推广
  • 可以在线做动图的网站近期重大新闻事件
  • 伊犁州建设局网站怎么做微信小程序
  • 做网站需要买主机那新媒体营销方式有几种
  • 网络推广seo公司seo排名的方法
  • 南山做网站多少钱百度资讯