Qt5串列埠傳送 接收中文資料問題

2021-09-19 12:56:55 字數 675 閱讀 9191

本文主要介紹qt5中串列埠傳送和接收中文資料的處理辦法,只給出關鍵**。

void serial::send_ascii(qstring str)

注意:網上的例子都是serial->write(str.tolatin1());,這樣傳送中文是會亂碼的,經過探索後需要使用serial->write(str.tolocal8bit());,這樣不僅能傳送一般ascii字串,也能傳送中文字元

//讀取接收到的資料

void serial::read_data()

}else

}buf.clear();

}

關鍵執行**為:

qstring str = qstring::fromlocal8bit( buf );
這樣buf緩衝區儲存的資料如果是中文的話,qstring型別的資料str也能正確顯示中文,當然,同樣可以正確顯示ascii字串。

網上其他解決辦法是

//        qstring str = qstring::fromutf8( buf );
經筆者測試是不行的。

QT5串列埠通訊

在qt5之前,要實現串列埠通訊,需要借助第三方串列埠封裝 qt5已經自帶了類來完成這項工作。如下 1.在pro檔案中新增 qt serialport 引入標頭檔案 include qtserialport qserialport include qtserialport qserialportinf...

QT5串列埠編寫

首先,qt5是自帶qserialport這個類的,使用時需要在pro檔案裡面新增一行 qt serialport 然後直接引用標頭檔案就可以使用了。include includeqserialport 提供訪問串列埠的功能 qserialportinfo 提供系統中存在的串列埠的資訊 接下來需要建立...

qt5串列埠簡易操作

從qt5開始,qt就自帶了串列埠類qseriaport,我們不用再像以前從外部新增串列埠檔案了。下面是對qserialport的初始化 qserialport serialport serialport setportname com1 埠 serialport setdatabits qseria...