首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

Qt4 跨平台中文亂碼完整解決方案(Windows / ARM Linux / 嵌入式)

     編輯:關於C語言

前言

跨平台開發中,中文編碼問題屢見不鮮。本文總結 Windows、ARM Linux(友善之臂 Tiny6410)下 Qt 4.6/4.8 的實測有效方案,助你避坑。

一、Windows 下 Qt4 中文亂碼解決

方法一:設置 GB2312 編碼(XP 有效,Win7 可能失效)

#include <QTextCodec>
int main(int argc, char *argv[]) {
    QApplication a(argc, argv);
    QTextCodec::setCodecForTr(QTextCodec::codecForName("GB2312"));
    // ... 其他代碼
    return a.exec();
}

使用時需包裹 tr("中文")。

方法二:全局設置本地編碼(推薦,一步到位)

#include <QTextCodec>
int main(int argc, char *argv[]) {
    QApplication a(argc, argv);
    QTextCodec *codec = QTextCodec::codecForLocale(); // 系統默認編碼
    QTextCodec::setCodecForTr(codec);
    QTextCodec::setCodecForLocale(codec);
    QTextCodec::setCodecForCStrings(codec);
    // ...
    return a.exec();
}

二、ARM Linux (QTE) 下中文亂碼解決

方法一:每文件設置 UTF-8(舊版常用)

#include <QTextCodec>
// 在每個需要中文的 .cpp 函數開頭
QTextCodec::setCodecForTr(QTextCodec::codecForName("utf8"));

調用:tr("我是中文!")

方法二:直接使用 trUtf8()(簡潔,不一定通用)

// 無需包含頭文件
QMessageBox::information(this, trUtf8("打開成功"), trUtf8("已成功打開串口:") + ui->portName_b->currentText());

三、Linux 桌面版 Qt4

原作者較少使用,建議參考 Windows 方案或自行搜索,通常設置 UTF-8 即可。

本文出自「李俊良 BKJIA 技術博客」,轉載請保留出處:原文鏈接
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved