您的位置:首页 > 编程语言 > Qt开发

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

2018-01-23 21:24 375 查看
不废话,我是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();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: