Qt编程中文乱码问题

Qt编程中文乱码问题,第1张

需要注意, 修改codecForLocale 要慎重! 在逗虚Qt 里面, codecForLocale 的作用主要有两个:① 与外部文巧薯件读写的时候使用的默认编码,② 向命令行输出信息( qDebug)使山宽燃用的编码。

(1)、中文编码一律使用QString::fromLocal8Bit()接口。

原因:需要支谨敬持QT4版本。QStringLiteral()方法也可取,但是它只支持QT5版本,如果没有版本问题,可以使用毁运。

(2)、CPP等文件编码一律使用UTF8—BOM格式。

原因1:UTF8-无BOM在使纤晌梁用window编译器cl中编译会失败,当然除非你Windows中使用QT的Mingw版本编译开发。

原因2:不使用GBK的文件编码是为了更容易的兼容到linux版本与windows中,否则你需要改QtCreate的编码环境与linux的系统字符环境。

方法/步骤

1

在一个linedit控件里面,我用了setplaceholdertext的方法,来显示文字,如下图

2

但是一跑起来,发现显示的文字并不是期待的“百度测试”,而是如下乱码

3

此时我们需要在对应的cpp文件中,包含一个头文件郑肆“qtextcodec.h”,

即在前面加上一行代码include "喊码轿qtextcodec.h”

4

之后统一编码格式为UTF-8,在setplaceholdertext方法调用之前加入以下代码

QTextCodec

*codec=QTextCodec::codecForName("UTF-8")

QTextCodec::setCodecForTr(codec)

QTextCodec::setCodecForLocale(QTextCodec::codecForLocale())

QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale())

5

然后模指再调试程序

6

你会发现,已经正常显示中文了

http://jingyan.baidu.com/article/1612d500418fede20e1eeeb1.html


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12560805.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存