在嚴格的ascii中,每個字元用7位元表示,一共規定了128個字元的編碼;
unicode拓展自ascii字符集,使用全16位字符集,可以表示全世界上所有的書寫語言中可能用於電腦通訊的字元、象形文本和其他符號。但不支援一些古老的文字。
utf-8是一種針對unicode的可變長寬字元編碼,又稱為萬國碼(通用轉換格式)。utf-8用1到4位元組編碼unicode字元。用在網頁上可以統一顯示中文繁體及其他語言(如英文、日文、韓文)。對可以用ascii表示的字元使用unicode並不高效,因為unicode比ascii多一倍空間。為解決這個問題,出現了中間格式的utf-8。
gb2313是ansi編碼中里的一種,是簡體中文編碼字符集。
補充:不同國家和地區制定了不同的標準,由此產生gb2313、big5等各自的編碼標準。這些使用2個位元組來代表乙個字元的各種漢字延伸編碼方式,稱為ansi編碼。
void ansitounicode()
// gb2312
到utf-8的轉換
char* g2u(const
char* gb2312)
{int len = multibytetowidechar(cp_acp, 0, gb2312, -1, null, 0);
wchar_t* wstr = new
wchar_t[len + 1];
memset(wstr,0, len + 1);
multibytetowidechar(cp_acp,0, gb2312, -1, wstr, len);
len= widechartomultibyte(cp_utf8, 0, wstr, -1, null, 0, null, null);
char* str = new
char[len + 1];
memset(str,0, len + 1);
widechartomultibyte(cp_utf8,0, wstr, -1, str, len, null, null);
if (wstr) delete wstr;
return str;
// gb2312 to unicode
int wlen = multibytetowidechar(cp_acp, 0,lpsztext, -1, null, 0);
lpwstr wstr = new wchar[wlen];
multibytetowidechar(cp_acp, 0, lpsztext,-1, wstr, wlen);
// unicode to gb2312
int alen2 = widechartomultibyte(cp_acp, 0,wstr2, -1, null, 0, null, null);
char* converted2 = new
char[alen2];
widechartomultibyte(cp_acp,0, wstr, -1, converted2, alen2, null, null);
中文編碼之間的轉換
主要思想 先將一種編碼用multibytetowidechar函式變為unicode編碼,再用widechartomultibyte函式變為另一種編碼。multibytetowidechar 一 函式功能 該函式對映乙個字串到乙個unicode字串。二 函式原型 int multibytetowid...
字元編碼的轉換
編碼轉換是指將一種編碼轉成另一種編碼,比如utf 8轉成gbk。為什麼需要編碼轉換?因為不同作業系統編碼不同,utf 8在win上沒法直接看,因為windows是gbk編碼的,需要轉成gbk才行。如果你的bgk字元想在linux mac上正常顯示,就得轉成utf 8.s 小明 在python3中,記...
字元編碼轉換
這幾天在做個東西,就是關於網路字元編碼轉換的問題,此前這方面一點兒也不懂,頭要的急所以從快入手,先上網了解了一下字元編碼到底是什麼東西,於是知道了內碼轉換,gb2312,big5,unicode等東西,不懂的可以從網上搜搜,我也是搜的,建議大家先看看這個 http www.vckbase.com d...