在做.net 專案中,有的時候,在開啟別人的專案的的時候,經常出現中文亂碼,尤其又是在繁體的環境下》也是找了一點編碼的資料,總結。
1.ascii 字符集
第 0-31 號及 127 號是控制字元或通訊專用字元;
第 32-126 號是字元,其中 48-57 號為 0-9 十個阿拉伯數字,65-90 號為 26 個
大寫英文本母,97-122 號為 26 個英文小寫字母,其餘為一些標點符號,運
算符號等。
在計算機儲存單元中,乙個 ascii 碼值佔乙個位元組(8 個二進位制位),最高位
是用作奇偶檢驗位。
2. gb2312 字符集:
gb2312 收錄了簡化漢字及一般字元,序號,數字,拉丁字母,日文假名,
希臘字母,俄文本母,漢語拼音符號,漢語注音字母,共 7445 個圖形字元。
其中包括 6763 個漢字,一級漢字 3755 個,二級漢字 3008 個。
gb2312 對所收漢字進行了「分割槽」處理,每區含有 94 個漢字或者符號,這
種表示方法也叫做「區位碼」。
它是用雙位元組表示的,前面的位元組為第一位元組,又稱「高位元組」,後面的為
第二位元組,「低位元組」。
高位位元組,把 01-87 區的區號加上 0xa0(相當於數字 160);低位位元組把 01-94
區的區號加上 0xa0(相當於數字 160)。 舉個簡單的小例子:第乙個漢字—
—「啊」,它的區號為 16,位號 01,則區位碼是 1601。則高位元組位:
16+0xa0=0xb0;低位元組位:01+0xa0=0xa1,所以「啊」的漢字處理編碼為
0xb0a1。
3. gbk 字符集:
gbk 是 gb2312 字符集的擴充套件(k)(中國的中文編碼表公升級,融合了更多的
中文文字元號。),它收錄了 21886 個符號,它分為漢字區和圖形符號區,
漢字區包括 21003 個字元。gbk 字符集主要擴充套件了正體中文本的支援。
4. big5 字符集:
big5 字符集共收錄了 13053 個中文字,該字符集在台灣使用。但是沒有考慮
到社會上流通的人名,地方用字,方言用字,化學及生物科等用字,沒有包
含日文平假名及片假字母。
big5 也採用雙位元組儲存方法,一兩個位元組編碼乙個字。高位位元組的編碼範圍
是 0xa1-0xf9,低位位元組的編碼範圍是 0xa1-0xfe。
6.unicode 字符集
unicode 允許在
同一伺服器上混合使用不同語言,它為每種語言的每個字元設定了統一並且
唯一的二進位制編碼,以滿足跨平台,跨語言進行文字轉換,處理的要求。、
unicode 標準始終使用十六進製制數字,固定使用 2 個位元組來表示乙個字元,
共可以表示 65536 個字元。而且書寫時在前面加上字首「u+」,例如 a 的編
碼是 004116,則書寫成「u+0041」。
unicode 字符集包含的編碼方案:
utf-8: (最多用三個位元組來表示乙個字元。)
utf8 是 unicode 其中的乙個使用方式。utf 的意思是:
unicode translation format,即把 unicode 轉作某種格式的意思。 utf-8
使用可變長度位元組來儲存 unicode 字元,如 ascii 字母還是採用乙個
字元來儲存,希臘字母等採用 2 個字元來儲存,而常用的漢字要使
用 3 位元組,輔助平面字元則使用 4 位元組。
utf-16:
使用乙個或兩個未分配的 16 位**單元的序列對 unicode **
點進行編碼,即 2 個位元組表示乙個字元。
utf-32:
將每乙個 unicode **點表示為相同值的 32 位整數。
utf-16 與 utf-8:如「連通」兩個字,在 utf-16 中為:de 8f 1a 90,
兩個位元組決定乙個漢字;在 utf-8 中則為:e8 bf 9e e9 80 9a,即 3
個位元組決定乙個字元。
當乙個軟體開啟乙個文字時,首先是要決定這個文字究竟是使用
哪種字符集的哪種編碼儲存的,軟體一般採用三種方式來決定文字
的字符集和編碼:檢測檔案頭標識,提示使用者選擇,根據一定的規
則猜測。不同編碼方式的開頭位元組如下:
ef bb bf
utf-8
ff fe
utf-16,little endian
fe ff
utf-16,big endian
ff fe 00 00
utf-32, little endian
00 00 fe ff
utf-32,big endian
注:endian 是指位元組序,big endian(大尾)和 little endian(小
尾)是 cpu 處理多位元組數的不同方式。例如「漢」的 unicode 編碼
是 6c49,寫到檔案中,如果將 6c 寫在前面就是 big endian,將 49
寫在前面就是 little endian。
計算機常見編碼介紹
計算機,不能直接儲存文字,儲存的是編碼。計算機只能處理二進位制的資料,其它資料,比如 0 9 a z a z,這些字元,我們可以定義一套規則來表示。假如 a用110表示,b用111表示等。ascii碼 美國發布的,用1個位元組 8位二進位制 來表示乙個字元,共可以表示2 8 256個字元。美國的國家...
計算機編碼 編碼
原碼 a.規則 最高位為符號位,0為正數,1為負數,剩餘位表示資料 b.例 95 原 0101 1111 原 77 原 11001101 原 c.特點 區分正負零 缺陷 0 原 0000 0000 0 原 1000 0000 原碼可能出錯 1 原 1 原 1000 0010 原 2 d d.範圍 8...
計算機編碼
來自 阮一峰 一下對自己有用的精簡部分 1.ascii碼 在計算機內部,所有的資訊最終都表示為乙個二進位制的字串。每乙個二進位制位有0和1兩種狀態,因此八個二進位制位就可以組合出256種狀態,這被稱為乙個位元組 byte 也就是說,乙個位元組一共可以用來表示256種不同的狀態,每乙個狀態對應乙個符號...