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幫助文件即可。
相關推薦
QT的字元編碼轉換
開發的終端需要接入兩個外設,二代證讀取裝置和印表機。 讓人鬱悶的是,兩個裝置的字元編碼與終端系統不一致,一開始耗了不少時間,後來才注意到字元編碼的問題。 二代證讀出來的資料都是用unicode編碼的,而列印子要求穿過去的資料要轉換成unicode編碼。 查閱了hel
C#實戰015:Excel操作-字元編碼轉換
在讀取Excel時遇到一個問題,那就是讀取出來的單表出現了亂碼的現象,我們可以看到很多漢字無法識別出來。 在存入時對字元編碼進行指定: public void getHeader
Python基礎(集合用法、檔案操作、字元編碼轉換、函式)
集合(Set)及其函式 集合是一個無序的、無重複元素的序列。 1 list = {1, 3, 6, 5, 7, 9, 11, 3, 7} # 定義集合方式一 2 list1 = set([1, 3, 6, 5, 7, 9, 11, 3, 7]) # 定義集合方式二 3 list2 = se
絕對正確絕對全的TCHAR和char的轉換以及字元編碼轉換
TCHAR轉為char 沒有定義UNICODE,所以它裡面的字串就是簡單用" "就行了,建立工程的時候包含了UNICODE定義,就必須對TCHAR和char進行轉換。 首先是把TCHAR轉為char [cpp] view plaincopyprint? //將TCHAR轉
C語言下使用iconv函式實現字元編碼轉換
1.iconv相關函式介紹 iconv命令是用來轉換檔案的編碼方式的(Convert encoding of given files from one encoding to another),比如它可以將UTF8編碼的轉換成GB18030的編碼,反過來也行。一般linux下包含iconv指令: 格式:ico
linux c 字元編碼轉換函式 iconv
一、利用iconv函式族進行編碼轉換 在LINUX上進行編碼轉換時,既可以利用iconv函式族程式設計實現,也可以利用iconv命令來實現,只不過後者是針對檔案的,即將指定檔案從一種編碼轉換為另一種編碼。 iconv函式族的標頭檔案是iconv.h,使用前需包含之。 #
1.Qt字元編碼
1.給空間設定內容,有顯示中文的,必須是utf-8編碼; 2.從Qt得到的字串,如果有中文,編碼是utf-8,和Linux是一樣的; 3.如果使用標準的C函式,如果有中文,是gbk編碼; ANSI,gbk,gbk1830,gbk2320(Windows的中文編碼) a.標頭檔案#include<
相容正點原子 stm32f103 UTF8字元編碼轉換 GBK 編碼格式
最近想做一個 網路天氣的小東西.好容易寫好了驅動,GET 了一下天氣網站的 API 返回竟然是中文亂碼,猜測是 UTF8 亂碼,果不其然.於是就自己去尋找網上大神們的解決方案:一般是 UTF-8 -> Unicode ->GBK (中文) 關鍵字: stm32103 嵌入式 u
小工具———字元編碼轉換檢視(MFC)
最近這一年多的工作當中,有很多工作都涉及到了編碼問題,每次都要去網上查很麻煩,所以,現在自己寫了一個工具,方便檢視各種各樣的字元編碼。 是用VS2012寫的,用了MFC。 直接上圖吧 說明: **1.**URL編碼 對空格處理成“+”號,還有一種是處
淺談C/C++程式設計中的字元編碼轉換
背景 在寫跨平臺的C/C++程式碼過程中(本文的研究只限於C/C++範疇),經常會遇到中文字串亂碼的問題。比如,同一個原始碼,用MSVC編譯/執行能正常顯示中文字串,但在linux下編譯/執行顯示中文字串就亂碼。 導致這種現象的根源就在於字符集編碼不匹配導致
字元編碼轉換(ActionScript)
ActionScript在處理網頁內容或者一些文字資訊時,經常會遇到一些字元編碼的轉換,這裡給出了一個簡單的字元編碼轉換的類。 package com { import flash.utils.ByteArray; public class SuperStr {
Windows下字元編碼轉換
// // get current time, yyyyMMddhhmmss // char* curtime( char *p, uint len ) { if( NULL != p ) { time_t tt; time( &tt ); tm*
Windows字元編碼轉換
利用ATL中的字串裝換巨集,對Unicode和非Unicode編譯環境下的字元進行巨集定義封裝,可以在ANSI、Unicode以及UTF-8之間進行快速轉換。 #if (defined _UNICOD
字元編碼轉換_進位制轉換(GB2312,GBK,JNI,HexTOStr)
////////////////////////////////////////////////////////////////////// /* ASCII 英文一個位元組 gb2312,gbk 中文兩個位元組,英文一個位元組 在中文系統中ansi一般指gb23
嵌入式 安裝 字元編碼轉換 libiconv庫
/************************************************************************/ /* src:原編碼 UTF-8 UTF-16 GBK */ /* deec:
PB中字元編碼轉換
//*******************************************code*********************************************************** //程式碼在PB9,window7 64bit 測試通過,對程式碼有疑問的可以傳送郵件進
Java工具類-轉換字元編碼
package common; /** *字串處理公用類 */ public class DealString { /** * 轉換字元編碼 由“iso-8859-1”西文轉換為簡體中文 */ public static String toGb(
字元編碼格式的轉換
(1)將Unicode轉換為UTF8格式: wchar_t * wsContent =L""; int nContentLen = WideCharToMultiByte(CP_UTF8, 0, wsContent, -1, NULL, 0, NULL, NULL); int nLen
轉換流(OutputStreamWriter/InputStreamReader) 檔案拷貝 字元編碼(亂碼)
一:轉換流</fon 在這篇部落格中介紹了位元組流和字元流: https://blog.csdn.net/sophia__yu/article/details/84678506 其實可以將位元組流轉換為字元流,也就是轉換流。 轉換流用於將底層的位元組流轉為字元流供子類使用。 位元組
NCR字元編碼(形如中国)轉換為漢字 in JAVA
numericcharacterreference(NCR),數字取值為目標字元的Unicodecodepoint;以「&;#」開頭的後接十進位制數字,以「&;#x」開頭的後接十六進位制數字。「中國」二字分別是Unicode字元U+4E2D和U+56FD,十六