QT5.2(不限于5.2)中文显示、输出、读取乱码解决方式

不废话,我是yx。2018.1.23

——————————————————————————————————————

环境设置:

 选项-》文本编辑器-》行为-》文件编码{1.System  2.总是删除

问题:

1.  需要输入中文,编译直接报错。

2.编译通过但是显示中文的地方乱码。

方法1

#include <QTextCodec>   #include<QFont>

     QTextCodec *codec = QTextCodec::codecForLocale();

//设置成本地编码格式

     QString title = codec->toUnicode("打开目标文件");

//此时的“打开目标文件”就不会显示乱码

方法2

#include <QFont>

setWindowTitle( QStringLiteral("客户端") );  //QStringLiteral 重点

QString strname = QStringLiteral("梅西");

quint16 intage  = 29;

QString str = QStringLiteral("当世球王是%1,%2").arg(strname ).arg(intage );

//所有的中文都用这个宏处理 QStringLiteral(“输入的中文”)

方法3

#if _MSC_VER >= 1600       // MSVC++ 10.0 _MSC_VER = 1600 (Visual Studio 2010)

#pragma execution_character_set("UTF-8")   

#endif

搞定,这个是我最近才找到的方法,也是最方便的

VS版本参考::    http://blog.csdn.net/wowolook/article/details/17219019



3.win下读取txt文件的中文,读入是乱码

方法:

 QTextStream in(&file);

 in.setCodec("UTF-8"); //重点

 QString temp = in.readAll();

4win下写入txt文件的中文,打开时中文乱码

方法:

 QString buff2 = QStringLiteral("中文你好");

 QTextStream out(&FileName);
 out.setCodec("UTF-8"); //重点
 out<<buff2;
 FileName.close();



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值