Qt::中文乱码问题解决

方法一、QTextStream

文件读写时乱码可以用,setAutoDetectUnicode(true) 设置QTextStream可以自动识别Unicode码

cpp 复制代码
bool MainWindow::openTextByStream(const QString &aFileName){
  // 用QTextStream打开文本文件
  QFile aFile(aFileName);
  if (!aFile.exists()) // 文件不存在
  	return false;
  if (!aFile.open(QIODevice::ReadOnly | QIODevice::Text))
    return false;
  QTextStream aStream(&aFile); // 用文本流读取文件
  aStream.setAutoDetectUnicode(true); // 自动检测Unicode
  ui->textEditStream->setPlaintext(aStream.readAll());
  aFile.close(); // 关闭文件
  return true;
}

bool MainWindow::saveTextByStream(const QString &aFileName){
  // 用QTextStream保存文本文件
  QFile aFile(aFileName);
  if(!aFile.open(QIODevice::WriteOnly | QIODevice::Text))
    return false;
  QTextStream aStream(&aFile); // 用文本流读取文件
  aStream.setAutoDetectUnicode(true); // 自动检测Unicode
  QString str = ui->textEditStream->toPlaintext();
  aStream<<str; // 写入文本流
  aFile.close(); // 关闭文件
  return true;
}
方法二、在应用程序中做全局的设置使用UTF-8的编码解码器

文件读写乱码或者其他问题乱码都可以使用此方法,做了全局的设置后读写文件就可以不用setAutoDetectUnicode(true)

cpp 复制代码
int main(int argc, char* argv[]){
  //解决中文乱码问题
  QTextCodec *codec = QTextCodec::codeForName("UTF-8");
  QTextCodec::setCodecForLocale(codec);
  QApplication a(argc, argv);
  MainWindown w;
  w.show();
  return a.exec();
}

对你有用就点个赞👍,以后需要用到就收藏⭐

相关推荐
Molesidy34 分钟前
【随笔】【QT】QT5.15.2版本的最新下载方式!!!
开发语言·qt
梨轻巧1 小时前
pyside6的历史发展、Qt 介绍、PyQt 和 pyside6对比
qt·pyqt
恋恋西风8 小时前
Qt 打开文件列表选择文件,实现拖拽方式打开文件,拖拽加载
开发语言·qt
奔跑吧 android8 小时前
【Qt】【1. 版本特性介绍】
qt·cpp·qml
西贝爱学习13 小时前
【QT】安装包
开发语言·qt
郝学胜-神的一滴16 小时前
QAxios研发笔记(二):在Qt环境下基于Promise风格简化Http的Post请求
开发语言·c++·笔记·qt·网络协议·程序人生·http
鄃鳕18 小时前
pyside6 qt 事件循环
开发语言·qt
wangjialelele1 天前
Qt中的常用组件:QWidget篇
开发语言·前端·c++·qt
春蕾夏荷_7282977251 天前
qcustomplot 显示坐标轴
qt·qcustomplot·坐标轴
郝学胜-神的一滴1 天前
Qt删除布局与布局切换技术详解
开发语言·数据库·c++·qt·程序人生·系统架构