[Qt]笔记(1)关于中文信息显示乱码

C++ Qt 专栏收录该内容
11 篇文章 0 订阅

问题描述

在Qt 界面程序中,出现中文乱码
Qt Creator 利用 vs2017 和 MinGW 分别对同一套代码编译。 vs2017 会乱码,MinGW 正常
以下是部分代码:

 tabModel->setHeaderData(tabModel->fieldIndex("empNo"),Qt::Horizontal,"工号");
 tabModel->setHeaderData(tabModel->fieldIndex("Name"),Qt::Horizontal,"姓名");
 tabModel->setHeaderData(tabModel->fieldIndex("Gender"),Qt::Horizontal,"性别");
 tabModel->setHeaderData(tabModel->fieldIndex("Height"),Qt::Horizontal,"身高");

vs2017 运行效果
在这里插入图片描述
MinGW 运行效果:
在这里插入图片描述

vs2017 编译 中文乱码解决方法:

 QTextCodec* codec = QTextCodec::codecForName("GBK");
 tabModel->setHeaderData(tabModel->fieldIndex("empNo"),Qt::Horizontal,codec->toUnicode("工号"));
 //tabModel->setHeaderData(tabModel->fieldIndex("empNo"),Qt::Horizontal,"工号");
 tabModel->setHeaderData(tabModel->fieldIndex("Name"),Qt::Horizontal,codec->toUnicode("姓名"));
 tabModel->setHeaderData(tabModel->fieldIndex("Gender"),Qt::Horizontal,codec->toUnicode("性别"));
 tabModel->setHeaderData(tabModel->fieldIndex("Height"),Qt::Horizontal,codec->toUnicode("身高"));

效果图
在这里插入图片描述
[后记]
Qt4 中,不分青红皂白,使用如下三行代码

QTextCodec* codec = QTextCodec::codecForName("GBK");
QTextCodec::setCodecForLocale(codec);
QTextCodec::setCodecForTr(codec);
QTextCodec::setCodecForCStrings(codec);

Qt5 中删除了以下方法

QTextCodec::setCodecForTr(codec);
QTextCodec::setCodecForCStrings(codec);

特殊符号乱码

在这里插入图片描述

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

参与评论 您还未登录,请先 登录 后发表或查看评论
©️2022 CSDN 皮肤主题:游动-白 设计师:我叫白小胖 返回首页

打赏作者

qq_31759493

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值