漢字編碼轉(zhuǎn)換
相關(guān):
UNICODE 是為了處理包括中文,日文等字符而提出的一種通用的字符集。最初的UNICODE為雙字節(jié)字符集,即16位編碼,能夠包括65,536個字符。但這樣的容量并不能滿足所有需要,因此,現(xiàn)在的UNICODE已經(jīng)擴展到4個字節(jié),能夠容納1,112,064 個字符,而這些在16位之后的擴展背稱為增補字符。
UTF-32 、 UTF-16 和 UTF-8 是 Unicode 標(biāo)準(zhǔn)的編碼字符集的字符編碼方案。
UTF-8 使用一至四個字節(jié)的序列對編碼 Unicode 代碼點進行編碼
UTF-8 使用一至四個字節(jié)的序列對編碼 Unicode 代碼點進行編碼。U+0000 至 U+007F 使用一個字節(jié)編碼,U+0080 至 U+07FF 使用兩個字節(jié),U+0800 至 U+FFFF 使用三個字節(jié),而 U+10000 至 U+10FFFF 使用四個字節(jié)。UTF-8 設(shè)計原理為:字節(jié)值 0x00 至 0x7F 始終表示代碼點 U+0000 至 U+007F(Basic Latin 字符子集,它對應(yīng) ASCII 字符集)。這些字節(jié)值永遠不會表示其他代碼點,這一特性使 UTF-8 可以很方便地在軟件中將特殊的含義賦予某些 ASCII 字符。
GB2312(1980 年 ) 一共收錄了 7445 個字符,包括 6763 個漢字和 682 個其它符號。漢字區(qū)的內(nèi)碼范圍高字節(jié)從 B0-F7 ,低字節(jié)從 A1-FE ,占用的碼位是 72*94=6768 。其中有 5 個空位是 D7FA-D7FE 。當(dāng)然也可以表示數(shù)字和字符(一個字節(jié),與 ASCII 表示相同)。
要讀取一個以 GB2312 編碼的包含漢字、數(shù)字、字母的二進制文件。
String strName =Encoding.GetEncoding("gb2312").GetString(name,0,i) ;
// name 是讀取的二進制數(shù)組。
這樣就能將二進制數(shù)組轉(zhuǎn)換為 漢字、數(shù)字或字母
同樣:也可以將包含漢字、數(shù)字、字母的字符串轉(zhuǎn)換為 二進制數(shù)組保存到 二進制文件。
String unicodeString = " 備用43E";
Byte[] encodedBytes = Encoding.GetEncoding("gb2312").GetBytes(unicodeString);
當(dāng)然也可以進行二進制數(shù)組與UNICODE,UTF-8等編碼方式的轉(zhuǎn)換
Byte[] encodedBytes = utf8.GetBytes(unicodeString);
String decodedString = utf8.GetString(encodedBytes);
UnicodeEncoding unicode = new UnicodeEncoding();
Byte[] encodedBytes = unicode.GetBytes(unicodeString);
String decodedString = unicode.GetString(encodedBytes);