字符集之間轉換 字串處理(一)

2021-05-21 16:28:19 字數 1281 閱讀 3810

字符集之間轉換(utf-8,unicode,gb2312)

特蒐集了utf-8,unicode,gb2312他們3個之間的相互轉換.

utf-8:   1~3位元組可變

unicode: 2位元組乙個字元

gb2312:  1位元組乙個字元

例子: 「你」字的utf-8編碼: e4 bd a0        11100100 10111101 10100000

「你」的unicode編碼: 4f 60            01001111 01100000

按照utf-8的編碼規則,分解如下:***x0100 xx111101 xx100000

把除了x之外的數字拼接在一起,就變成「你」的unicode編碼了。

注意utf-8的最前面3個1,表示整個utf-8串是由3個位元組構成的。

經過utf-8編碼之後,再也不會出現敏感字元了,因為最高位始終為1。

類定義  

class cchinesecode  

;  

類實現  

void cchinesecode::utf_8tounicode(wchar_t* pout,char *ptext)  

void cchinesecode::unicodetoutf_8(char* pout,wchar_t* ptext)  

void cchinesecode::unicodetogb2312(char* pout,wchar_t udata)  

void cchinesecode::gb2312tounicode(wchar_t* pout,char *gbbuffer)  

void cchinesecode::gb2312toutf_8(string& pout,char *ptext, int plen)  

else  

}  

rst[j] = '';    

//返回結果  

pout = rst;               

delete rst;     

return;  

}  

void cchinesecode::utf_8togb2312(string &pout, char *ptext, int plen)  

else                   

}  

newbuf[j] = '';  

pout = newbuf;  

delete newbuf;  

return;   

}   

字符集之間轉換

字符集之間轉換 特蒐集了utf 8,unicode,gb2312他們3個之間的相互轉換.utf 8 3位元組乙個字元 unicode 2位元組乙個字元 gb2312 1位元組乙個字元 例子 你 字的utf 8編碼 e4 bd a0 11100100 10111101 10100000 你 的unic...

C 對字串轉換字符集(編碼)

最近,linux上遇到string為漢字時,需要轉碼存入到資料庫中,將轉碼的函式及其方法記錄一下。見函式 標頭檔案是 include fromcode 源string使用的字符集,如 utf 8 對於漢字每個漢字為3個位元組儲存 tocode 目的string使用的字符集,如 gb2312 對於漢字...

PHP之字串所使用的字符集處理及轉換

encode mb detect encoding str,array ascii gb2312 gbk utf 8 方法詳見php手冊,要注意的是,如果 str會匹配陣列指定的多個字符集,那麼以匹配到的第乙個字符集為準。比如 如果 str既是gb2312 euc cn 又是是gbk cp936 還...