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
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.
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();
}
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