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

网站建设的条件深圳市建设工程造价网

网站建设的条件,深圳市建设工程造价网,php做视频网站有哪些,wordpress 目录 模板下载Visual Studio 2022 - QT 环境中文字符乱码问题 一、Visual Studio 2022 - Qt 环境 在 QT 中使用中文字符串常会出现乱码现象&#xff0c;如下&#xff1a;以下提供了几个解决方法&#xff0c;仅供参考 QString str "百香果真是一直可爱的小猫咪"; qDebug() <…

Visual Studio 2022 - QT 环境中文字符乱码问题

一、Visual Studio 2022 - Qt 环境

在 QT 中使用中文字符串常会出现乱码现象,如下:以下提供了几个解决方法,仅供参考

QString str = "百香果真是一直可爱的小猫咪";
qDebug() << str << Qt::endl;//"?????????????????Сè??" 输出为乱码

  出现这种问题主要是因为QT Creator 5 及其之后的默认编码方式为 UTF-8,所以 QString 默认认为字符串都是 UTF-8 格式,如果字符串不是 UTF-8 格式,QString 在转码为内部 Unicode 编码方式时就会出现乱码的现象
  其实最好的解决方法就是将编码格式转变为 UTF-8,当然也要根据实际情况随机应变,下面提供方法仅供参考

方法一:高级保存选项切换当前文件编码格式为 UTF-8

  选中需要高级保存的文档 -> 菜单栏选择文件 -> 选择高级保存选项 -> 然后选择正确的编码方式即可; VS 2022 这里默认是使用 GB2312 编码方式,所以只需要将编码方式改为 UTF-8 即可。(VS 2022 如何添加高级保存选项)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
  当我们修改完编码方式为 UTF-8,字符串的默认编码方式就是 UTF-8,而不是 GB2312,所以 QString 在转码的时候就会正常转码,不会出现乱码的现象。
在这里插入图片描述

方法二:使用 #pragma execution_character_set(“utf-8”) (VS2025 之后过期)将文件编码格式改为 UTF-8

  *指定用于字符串和字符文本的执行字符集,但是该编译指令在 VS 2015 之后就过期了,这里只做记录 *

方法三:使用 QStringLiteral 宏 和 fromLocal8Bit 方法

  Qt Creator 一般来说默认是使用 UTF-8 编码,而 QStringLiteral 宏可以将字符串转换成 Qt 适配的 UTF-8 编码。

//Visual Studio 2022 - Qt 环境
QString str = "百香果真是一直可爱的小猫咪";
qDebug() << str << Qt::endl;//"?????????????????Сè??" 输出为乱码
//这里使用 QStringLiteral 将字符串转换为 UTF-8 编码格式
str = QStringLiteral("百香果真是一直可爱的小猫咪");
qDebug() << str << Qt::endl;//"\u0019ù\u0015\n???\u0004è\u001F" 输出仍然为乱码

  上面代码中我一开始将直接输出字符串,未进行任何处理,输出为乱码,然后我使用 QStringLiteral 宏将字符串转换为 UTF-8 编码格式,输出仍然为乱码,这个时候就需要考虑 VS 2022 当前的编码格式是否为 UTF-8 了,如果不是,可能使用 QStringLiteral 也会出现这种乱码行为,很显然,我们前面查看高级保存选项发现 VS 2022 默认编码方式是 GB2312,所以这里不对。

  如果使用 QStringLiteral 不成功,我们还可以使用 QString::fromLocal8Bit 方法,它用于将使用本地编码方式(本地方式默认 GBK, GBK 和 GB2312 可以相互转换)转换为 QString 对象的内部 Unicode 编码。

str = QString::fromLocal8Bit("百香果真是一直可爱的小猫咪");
qDebug() << str << Qt::endl;//百香果真是一直可爱的小猫咪
//使用 QMessageBox 打开一个窗口输出该字符也不会出现乱码
QMessageBox::information(0, "title", str);//参数一:父窗口,参数二,标题;参数三,输出字符

  这样就可以正确的表示我们想要输出的中文字符串,也就是说需要我们将中文字符串转换编译器的编码格式才能够正确的输出。

  还有一点值得注意的是,当我们在 UI 界面上使用中文字符的时候,我们会发现他不会出现乱码行为,比如说我定义一个按钮,再其上面输入中文,如下:
在这里插入图片描述
  当我们运行该程序的时候会发现他并没有出现乱码行为,而这个可以通过看 UI 界面生成的代码得到答案

void retranslateUi(QMainWindow *QString_3_1Class){QString_3_1Class->setWindowTitle(QCoreApplication::translate("QString_3_1Class", "QString_3_1", nullptr));pushButton->setText(QCoreApplication::translate("QString_3_1Class", "\344\270\255\346\226\207\346\214\211\351\222\256", nullptr));} // retranslateUi

  通过上述代码我们可以看出,他直接通过界面设计器将其转换成 UTF-8 格式,然后再通过 QCoreApplication::translate 方法将其翻译成对应的中文。

http://www.yayakq.cn/news/670119/

相关文章:

  • seo是网站搜索引擎上的优化作品集怎么做网页
  • 欧米伽男士手表官方网站杭州事件最新消息新闻
  • 如何让别人看到自己做的网站在线修图编辑器免费
  • 炎陵做网站申请一个免费的网站空间
  • 一个网站有几个快照怎么评价网站做的好坏
  • 网站空间多大合适响应式网站和
  • 扬州网站建设企业制作手机app需要学什么编程
  • 威宁建设局网站网站做戒酒通知书
  • 提供网站建设服务的网站价格wordpress子页面内容
  • 旌阳移动网站建设广东省级建设主管部门网站
  • 温州鹿城区企业网站搭建php网站怎么搭建环境
  • 珠宝网站建设平台分析报告seo的优点有哪些
  • 全站仪建站流程上海微网站制作设计制作
  • 做网站和做app的区别Wordpress怎么变更主页网址
  • 横琴新区公共建设局网站豌豆荚官网入口
  • 有可以花钱让人做问券的网站吗他达拉非副作用
  • 凡科网做网站要钱吗短链接转换工具
  • 汉川做网站邯郸网站建设服务平台
  • 文章类网站wordpress 4.7.9漏洞
  • 网页型网站wordpress 5.0多站点
  • 惠州双语网站建设费用新浪网页游戏
  • 网站主页尺寸网页设计代码信件怎么写
  • 南京电子商务网站建设制作相册影集下载
  • 设计网站官网有哪些广州网站建设报价单
  • 怎么申请网站详细步骤知名网站的org域名
  • 茶网站建设实训报告开发公司前期部岗位职责
  • 河南郑州广告公司网站建设宁波外贸建站公司
  • 建设工程设计备案网站软件开发培训哪有
  • 东阳市住房与城乡建设局网站网站制作软件培训
  • 网站规划与建设策划书法库网站建设