這裏是在項目中看到某大佬是這樣用的,在此記錄下以後也這樣做,方便日後調試。
在linux上,文件有2個類型的編碼,一個是UTF-8,一個是ASCII。
在使用QtCreator創建項目的時候默認是UTF-8編碼,使用VS產品的時候,文件一般是保存爲ASCII碼。
這樣的話就存在一個問題,項目中文件各個編碼不同,解決的方法就是用txt打卡然後另存爲編碼。即可。
還有給方法可以不用改變編碼,中文也能正常輸出,下面模擬下這種情況。
項目結構如下
文件如下。
Test.pro
QT += core
TARGET = test
TEMPLATE = app
SOURCES += main.cpp
main.cpp
#include <QCoreApplication>
#include <QDebug>
#define _STR QString::fromUtf8
int main(int argc, char *argv[]){
QCoreApplication a(argc, argv);
qDebug() << _STR("看看中文輸出是不是有亂碼");
return a.exec();
}
這裏就是通過#define _STR QString::fromUtf8
使用_STR去代替輸出,當出現問題的時候,可能解決方法很多,設置編碼集,或者改變文件編碼,或者改變輸出。
這種也是一種方式,在此記錄下!
上面這代碼運行截圖如下:
當代碼是這樣的時候:
#include <QCoreApplication>
#include <QDebug>
#define _STR QString::fromLocal8Bit
int main(int argc, char *argv[]){
QCoreApplication a(argc, argv);
qDebug() << _STR("看看中文輸出是不是有亂碼");
return a.exec();
}
運行截圖如下: