Praktische Qt-Fähigkeiten: Methode zur Konvertierung der Zeichenkodierung für gemischte chinesische und englische digitale Sendeinhalte im Beidou-GPS-Kommunikationscodemodus

Wenn es sich bei dem Artikel um einen Originalartikel handelt, geben Sie beim Nachdruck bitte die Quelle des Originalartikels an.
Die Blog-Adresse dieses Artikels: https://hpzwl.blog.csdn.net/article/details/131434492

Red Fatty Network Technology Blog-Enzyklopädie: Die Sammlung von Entwicklungstechnologien (einschließlich praktischer Qt-Technologie, Raspberry Pi, 3D, OpenCV, OpenGL, ffmpeg, OSG, Single-Chip-Mikrocomputer, Kombination aus Software und Hardware usw.) wird kontinuierlich aktualisiert ...

Kolumne zur Qt-Entwicklung: Praktische Tipps


brauchen

Entwickeln Sie die Beidou-GPS-Positionierungskommunikation und definieren Sie eine Reihe benutzerdefinierter Protokolle für das Protokoll   „ Kommunikationsanwendung ($TXSQ) “ neu. Der Kommunikationsinhalt umfasst chinesische Übertragungen, die gemäß dem Beidou-Tool codiert werden müssen.
  Fügen Sie hier eine Bildbeschreibung ein

Prinzip

  Das GPS-Kommunikationsprotokoll von Beidou besteht eigentlich aus drei Modi: einem chinesischen Zeichen, einem Code, und der Code ist in reinen Code und gemischten Code unterteilt. Der Codemodus ist eigentlich eine GBK-Codekonvertierung für den visualisierten Teil.
  Beim Entwerfen eines benutzerdefinierten Protokolls muss zwischen der gemischten Übertragung von Anweisungen unterschieden werden (Anweisungsbytes werden nicht visualisiert, und GBK an Huanu ist erforderlich, um sie in Dialoginhalte zu analysieren).


Konvertierungsmethode

  Es handelt sich um eine einheitliche Verarbeitungsmethode, die direkt eine GBK-Codierungskonvertierung durchführt und dabei die lokale Codierung für den im Protokoll definierten visuellen Inhalt ignoriert.

#include <QApplication>
#include <QTextCodec>

#include <QDebug>
#include <QDateTime>
//#define LOG qDebug()<<__FILE__<<__LINE__
//#define LOG qDebug()<<__FILE__<<__LINE__<<__FUNCTION__
//#define LOG qDebug()<<__FILE__<<__LINE__<<QThread()::currentThread()
//#define LOG qDebug()<<__FILE__<<__LINE__<<QDateTime::currentDateTime().toString("yyyy-MM-dd")
#define LOG qDebug()<<__FILE__<<__LINE__<<QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss:zzz")


int main(int argc, char *argv[])
{
    
    
    QApplication a(argc, argv);


    QString str = QString("你好1234");
#if 1
    // 1.无视本地编码
    // 2.强制本地转换为GBK编码
    LOG << "内容:" << str;
    QTextCodec *pTextCodec = QTextCodec::codecForName("GBK");
    QByteArray data = pTextCodec->fromUnicode(str);
    LOG << "转换为GBK编码:" << QString(data.toHex(' '));
#endif

#if 1
    // 1.GBK编码转换为本地编码
    // 2.无视本地编码
//    QTextCodec *pTextCodec = QTextCodec::codecForName("GBK");
    pTextCodec = QTextCodec::codecForName("GBK");
    str = pTextCodec->toUnicode(data);
    LOG << "转换为本地文本:" << str;

#endif

    return a.exec();
}


  Fügen Sie hier eine Bildbeschreibung ein


Wenn es sich bei dem Artikel um einen Originalartikel handelt, geben Sie beim Nachdruck bitte die Quelle des Originalartikels an.
Die Blog-Adresse dieses Artikels: https://hpzwl.blog.csdn.net/article/details/131434492

おすすめ

転載: blog.csdn.net/qq21497936/article/details/131434492