2 zhk7894613 zhk7894613 于 2016.03.27 22:18 提问

QT界面,中文显示乱麻 20C

图片说明

本来好好的,但是因为一行中文的最后一个汉字在QT界面显示为“?”。看了网上各种方法,就不断尝试。尝试其中一种方法,将源文件的编码方式分别改为ANSI/UTF-8/Unicode,并保存编译。发现界面的汉字全变为乱码了,如图。也不知道如何恢复到之前的状态。

1.请问这是什么原因呢?

2.如何解决?

3.如何恢复到之前的状态呢?

5个回答

broust
broust   2016.03.27 22:23

源文件的编码格式和编译时用的编码不一致?

zhk7894613
zhk7894613 如何让两者一致呢?源文件的编码格式可以通过文本文档打开,并保存为UTF-8/Unicode/ANSI等;编译时的编码格式,在QT creator里什么地方设置呢?
2 年多之前 回复
lx624909677
lx624909677   Ds   Rxr 2016.03.27 22:55
 QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GB2312"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));

在程序开始加上面代码

zhk7894613
zhk7894613 我是在QT5里面写的,添加上面的,会报错,““setCodecForCStrings”: 不是“QTextCodec”的成员”。
2 年多之前 回复
zhk7894613
zhk7894613   2016.03.28 11:00

所有中文显示乱麻后,将tr("序号")改为QString::fromLocal8Bit("序号"),并且在main函数将QTextCodec *codec = QTextCodec::codecForName("UTF-8");等注掉后,就能正常显示中文了,并且之前显示问号的问题也没有了。但这只是权宜之计,没有解决根本问题。

CSDNXIAON
CSDNXIAON   2016.03.30 11:27

如何在qt中显示中文
qt界面中文翻译
QT界面中文翻译
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

u010177010
u010177010   2016.05.25 17:45

直接的办法,将文件格式改为utf-8编码格式,在字符串前面加上QStringLiteral

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Linux下QT编程中文显示乱码解决
在main.cpp文件中添加 头文件#include int main(int argc,char *argv[]) { QApplication a(argc,argv); QTextCodec *codec = QTextCodec::codecForName
VS2013+QT5 界面中文显示乱码问题 解决方案
本方案适用于VS2013+QT5.3环境(编译器是VC)   using namespace std; # pragma execution_character_set("utf-8") //文件的开头要声明字符编码UTF-8,这样输出中文字符串就能显示正常。qDebug() " 连接交易前置...成功" ; 直接输出字符串是没问题了,但遇到char*[]这样的字符数组的
linux中,qt creator打开文件时的中文乱码问题
linux中,qt creator打开文件时的中文乱码问题 将windows 7 + vs2008 + qt-4.7.4中开发的qt工程移植到fedora 15 kde + qt-4.7.4 + qt creator-2.3.1。 在fedora中,打开之前的工程文件,发现之前的中文显示为乱码。 经过以下步骤后可进行解决: 1. edit - select encoding..
【Qt开发】Qt5.7中文显示乱码解决方法两种
升级到Qt5.X之后,原先解决的Qt显示中文乱码的方法突然不适用了,找了很多方式来解决这个问题 第一种: 在公司代码里看到的方法,先将对应的cpp文件用windows自带的记事本打开,另存为UTF-8格式,然后在代码中,遇到中文字符,使用QStringLiteral("中文")进行修饰 这种方式每次新建一个class就要切出去用记事本编辑一下实在麻烦,而且每个中文字符
qt5版本的中文显示问题
本文旨在解决qt5版本中的中文乱码问题。
QT 5.1 中文问题 乱码 方框
在使用QT5.1的过程中,关于中文显示问题,把自己的作法写出来给大家一个参考 1,首先在工具-》选项-》文本编辑器-》行为,文件编码,默认编码:UTF-8 ,  UTF-8  BOM:如果编码是UTF-8则添加 2,在qDebug() 3,如果这样你打印出来后是  口口口口口口口  这样,你可以这样设置:在工具-》选项-》文本编辑器-》字体和颜色,改变下字型,直到下面那些五颜六
Windows下Qt Creator显示中文乱码的另一种情况及解决办法
Win7 64位系统,很久以前安装了Qt5.3.1 MinGW 32bit 版本,里面是自带Creator 3.1.2的。然而一直显示中文乱码,cpp文件代码和注释中的中文全是小方框,首先怀疑是Creator版本问题,于是又重新装了最新的Qt Creator 3.3.2,结果还是中文显示乱码。     网上搜了下,有人说是文件编码的问题,我看了下,我的cpp文件已经是UTF-8编码了,Creat
嵌入式Linux下Qt的中文显示
一般情况下,嵌入式Qt界面需要中文显示,下面总结自己在项目中用到的可行的办法 1,下载一种中文简体字体,比如我用的是”方正准圆简体“,把字体文件放在ARM开发板系统的Qt字库中,即/usr/lib/fonts下 2,添加ARM开发板上的环境变量,打开vi /etc/profile,添加 export QT_QWS_FONTDIR=/usr/lib/fonts 3,在main.cpp中,添加
QT5中文显示出现乱码
Qt中的中文显示,经常会出现乱码。这次自己学习QT,遇到的第一个问题就是中文乱码。看了一些博客,五花八门,不过好在还是得到了解决! 网上搜索一下,找到的都是这种: #include int main(int argc, char **argv) { .................... QTextCodec::setCodecForTr(QTextCodec:
Qt 4.8.4中文显示问题
问题描述       因为项目需要,重新用上了Qt 4.8.4,在之前的一段时间内,我一直是在使用Qt 5。实际上,本来项目是要使用Qt 5的,但是遇到几个莫名其妙的问题,解决办法繁琐,不利于后期项目的部署,所以采用Qt 4.8.4。       好的,回归正题,使用的过程中碰到了老问题:Linux环境下中文显示问题。这个问题其实碰到很多次了,每次还得去网上找解决办法,还是自己记录一下,这样以