計算機常見編碼規範速查表

有關編碼的基礎知識 windows


1. 位 bit 最小的單元 服務器

字節 byte 機器語言的單位 編碼

1byte=8bitsspa

1KB=1024bytecode

1MB=1024KBorm

1GB=1024MBip

2. 二進制 binary ci

八進制 octal unicode

十進制 decimal it

十六進制 hex

3. 字符:是各類文字和符號的總稱,包括各個國家的文字,標點符號,圖形符 號,數字等。

字符集:字符集是多個符號的集合,每一個字符集包含的字符個數不一樣。

字符編碼:字符集只是規定了有哪些字符,而最終決定採用哪些字符,每一 個字符用多少字節表示等問題,則是由編碼來決定的。計算機要 準確的處理各類字符集文字,須要進行字符編碼,以便計算機可以識別和存儲各類文字。


 常見字符集的編碼介紹 


常見的字符集有:ASCII 字符集,GB2312 字符集,BIG5 字符集,GB18030 字符集, Unicode 字符集,下面一一介紹:
1. ASCII 字符集:

  • 定義: 美國信息互換標準代碼,是基於羅馬字母表的一套電腦編碼系統,主要顯示 英語和一些西歐語言,是現今最通用的單字節編碼系統。 
  • 包含內容: 控制字符(回車鍵,退格,換行鍵等) 可顯示字符(英文大小寫,阿拉伯數字,西文符號) 擴展字符集(表格符號,計算符號,希臘字母,拉丁符號) 
  • 編碼方式: 第 0-31 號及 127 號是控制字符或通信專用字符; 第 32-126 號是字符,其中 48-57 號爲 0-9 十個阿拉伯數字,65-90 號爲 26 個 大寫英文字母,97-122 號爲 26 個英文小寫字母,其他爲一些標點符號,運 算符號等。 在計算機存儲單元中,一個 ASCII 碼值佔一個字節(8 個二進制位),最高位 是用做奇偶檢驗位。【奇偶校驗是指:在代碼傳送的過程當中,用來檢驗是否 出錯的一種方法。】奇偶校驗分爲奇校驗和偶校驗。奇校驗規定:正確的代 碼一個字節中 1 的個數必須是奇數,若非奇數,則在最高位添 1;偶校驗規 定:正確的代碼一個字節中 1 的個數必須是奇數,若非奇數,則在最高位添 1。

2. GB2312 字符集:

  • 定義: 信息交換用漢字編碼字符集。是中國標準的簡體中文字符集,它所收錄的漢 字已經覆蓋 99.75%的使用頻率,在中國大陸和新加坡普遍使用。
  •  包含內容: 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 字符集:

  • 定義: 又稱大五碼,由臺灣五家軟件公司創立。由於當時臺灣沒有一個標準的字符 集,並且 GB2312 又沒有收錄繁體字,因此才推出了 BIG5。  包含內容: BIG5 字符集共收錄了 13053 箇中文字,該字符集在臺灣使用。可是沒有考慮 到社會上流通的人名,地方用字,方言用字,化學及生物科等用字,沒有包 含日文平假名及片假字母。
  •  編碼方式: BIG5 也採用雙字節存儲方法,一兩個字節編碼一個字。高位字節的編碼範圍 是 0xA1-0xF9,低位字節的編碼範圍是 0xA1-0xFE。

5. GB18030 字符集:

  • 定義: GB18030 字符集標準解決漢字,日文假名,朝鮮語和中國少數民族文字組成 的大字符集計算機編碼問題。  包含內容: 該標準的字符總編碼空間超過 150 萬個編碼位,收錄了 27484 個漢字,覆蓋中文,日文,朝鮮語和中國少數民族文字。知足中國大陸,香港,臺灣,日 本和韓國等東南亞地區信息交換多文種,大字量,多用途,統一編碼格式的 要求。
  • 編碼方式: GB8030 標準採用單字節,雙字節和四字節三種方式對字符編碼。 單字節部 分使用 0x00-0x7F 碼(對應於 ASCII 碼的相應碼); 雙字節部分,首字節碼從 0x81-0xFE,尾字節碼分別是 0x40-0x7E 和 0x80-0xFE。 四字節部分採用 0x30-0x39 做爲雙字節編碼擴充的後綴,這樣擴充的四字節 編碼,其範圍是 0x81308130-0x0xFE39FE39,其中第一,三個字節編碼位均爲 0x81-0xFE,第二,四個爲 0x30-0x39。 

6. ISO8859-1:拉丁碼錶。歐洲碼錶用一個字節的 8 位表示。 

7. Unicode 字符集:

  •  定義: (國際標準碼,融合了多種文字。全部文字都用兩個字節來表示,Java 語言使用的就是 unicode) University multiple-object coded character set(通用多 八位編碼字符集),支持世界上超過 650 種語言的國際字符。Unicode 容許在 同一服務器上混合使用不一樣語言,它爲每種語言的每一個字符設定了統一而且 惟一的二進制編碼,以知足跨平臺,跨語言進行文本轉換,處理的要求。
  • 編碼方式: Unicode 標準始終使用十六進制數字,固定使用 2 個字節來表示一個字符, 共能夠表示 65536 個字符。並且書寫時在前面加上前綴「U+」,例如 A 的編 碼是 004116,則書寫成「U+0041」。
  • Unicode 字符集包含的編碼方案:
  1. UTF-8: (最多用三個字節來表示一個字符。) UTF8 是 unicode 其中的一個使用方式。UTF 的意思是: unicode translation format,即把 unicode 轉做某種格式的意思。UTF-8 使用可變長度字節來存儲 unicode 字符,如 ASCII 字母仍是採用一個 字符來存儲,希臘字母等採用 2 個字符來存儲,而經常使用的漢字要使 用 3 字節,輔助平面字符則使用 4 字節。
  2. UTF-16: 使用一個或兩個未分配的 16 位代碼單元的序列對 unicode 代碼 點進行編碼,即 2 個字節表示一個字符。
  3. UTF-32: 將每個 unicode 代碼點表示爲相同值的 32 位整數。
  4. 關於 unicode 編碼的一個問題: 使 用 記 事 本 另 存 爲 時 , 可 以 在 ANSI , GBK,Unicode , unicode big endian 和 UTF-8 這幾種編碼之間相互轉換。一樣是 txt 文 件,windows 是怎麼識別編碼的呢? 答:平時注意的話能夠發現 Unicode,unicode big endian 和 UTF-8 編碼的 txt 文件的開頭會多出幾個字節,分別是(FF,FE),(FE,FF), (EF,BB,BF)。那麼這些標記都是基於什麼標準呢?


ANSI 字符集:ASCII 字符集,以及由此派生併兼容的字符集。 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。

總結 


從 ASCII,GB2312,GBK 到 GB18030,這些編碼方法是向下兼容的,即同一 個字符在這些方案中老是有相同的編碼,後面的標準支持更多的字符。在這些編 碼中,英文和中文能夠統一的處理。區分中文編碼的方法是高字節的最高位不爲 0。

計算機使用的缺省編碼方式就是計算機的內碼。有的中文 windows 的缺省內 碼仍是 GBK,能夠經過 GB18030 升級包升級到 GB1030。不過相對 GBK 新增的字 符,普通人很難用到的,一般咱們用 GBK 來指代中文 windows 內碼。 GB2312 的原文是區位碼,從區位碼到內碼,須要在高字節和低字節上分別 加上 A0。

 

 

 

本文由「雲端木瓜」整理總結,轉載請註明出處

This article from the "雲端木瓜" finishing summary, reproduced please indicate the source.

相關文章
相關標籤/搜索