QT运行窗口中汉字显示为乱码的解决方法
网上各种使用诸如以下方法来解决的文章
QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));
或者在工具->选项->文本编辑器->行为->文件编码中进行设置
经过测试均无效
解决方案:
在mainwindow.cpp代码中增加如下的第四行,指定执行字符集为gpk即可
需要注意的是,如此指定依然不能在中文内容中出现如中文叹号“!”等字符,否则系统编译时会提示存在额外的换行符
本测试所用的QT版本:5.9.9
1 #include "mainwindow.h" 2 #include "ui_mainwindow.h" 3 #include <QMessageBox> 4 #pragma execution_character_set("gpk") 5 6 MainWindow::MainWindow(QWidget *parent) 7 : QMainWindow(parent) 8 , ui(new Ui::MainWindow) 9 { 10 ui->setupUi(this); 11 } 12 13 MainWindow::~MainWindow() 14 { 15 delete ui; 16 } 17 18 void MainWindow::on_pushButton_clicked() 19 { 20 QString str= ui->textEdit->toPlainText(); 21 QXlsx::Document xlsx; 22 xlsx.write("A1",str); 23 if(xlsx.saveAs("OutputFile.xlsx")) 24 { 25 QMessageBox::information(this,"提示","写入成功"); 26 } 27 else 28 { 29 QMessageBox::critical(this,"警告","写入失败"); 30 } 31 }