字符編碼 ASCII,Unicode,UTF-8的關係

一、爲什麼要有編碼?

因爲計算機只能處理數字,所以如果想要處理字符串就需要把字符串先轉成數字。這個轉換就需要有一個字符到數字的映射表,也就是編碼。


二、什麼是ASIIC碼?

因爲計算機是美國人發明和最早使用的,他們爲了解決計算機處理字符串的問題,就將數字字母和一些常用的符號做成了一套編碼,這個編碼就是ASIIC碼。ASIIC碼包括數字大小寫字母和常用符號,一共128個,1字節(byte)=8bit,8bit能表示的最大數是256,所以ASIIC編碼中一個字符的大小就是1個字節


三、什麼是Unicode編碼?

計算機進入中國,我們發現美國人制定的ASIIC完全不夠用,於是我們就制定了自己的GB2312編碼,把漢字編碼了進去。

同樣的事情發生了在了俄羅斯,法國,日本等等,各國都開始制定自己的一套編碼,計算機的編碼越來越龐大,越來越亂,爲了解決這一問題,Unicode應運而生。Unicode將各國文字統一編碼。

所以Unicode編碼可以看做是ASIIC的擴展。


四、什麼是UTF-8?

UTF-8編碼可以理解成Unicode編碼的一種升級,爲什麼要升級呢?爲了節省存儲空間。

ASIIC編碼一共128個,所以1個字節就可以搞定,Unicode編碼通常是2個字節。

例如:A的表示

ASIIC 01000001
Unicode 00000000 01000001


可以想象,如果是純英文的文章用Unicode編碼,會浪費很多字節的存儲空間。爲了解決這個問題,就把Unicode編碼升級成了可變長度的編碼也就是UTF-8編碼,在UTF-8編碼中,數字字母都是一個字節,超過ASIIC碼的部分用兩個或者三個字節表示。舉例:

字符 A 用三種編碼存儲:

Asiic 01000001
Unicode 00000000 01000001
UTF-8 01000001


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章