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