漢字編碼轉換
相關:
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);