1. 程式人生 > >QT的字元編碼轉換

QT的字元編碼轉換

開發的終端需要接入兩個外設,二代證讀取裝置和印表機。

讓人鬱悶的是,兩個裝置的字元編碼與終端系統不一致,一開始耗了不少時間,後來才注意到字元編碼的問題。

二代證讀出來的資料都是用unicode編碼的,而列印子要求穿過去的資料要轉換成unicode編碼。

查閱了help文件,發現QT有自己的轉換函式,那真是再好不過了。

首先是二代證的資料:

QString text = QTextCodec::codecForName("GB2312")->fromUnicode(str);

終端系統用的是GB2312編碼,str是從二代證讀出來的unicode編碼的資料緩衝區

這樣得到的text,就可以在終端上正常顯示了。

關於印表機嘛,正好相反,它是要求我們傳的資料轉成unicode:

printBuf = QTextCodec::codecForName("GB2312")->toUnicode((text));

至於UTF-8或者其他的編碼轉換都雷同,檢視qt幫助文件即可。