關於encoding

  

UTF-8 and Unicode cannot be compared. UTF-8 is an encoding used to translate binary data into numbers. Unicode is a character set used to translate numbers into characters.code

 

 

最最開始的世界,只有英文字母,因此ascii就足夠了,一個byte足以表示全部英文字母ci

 

而後人們忽然意識到,窩草,那別的國家的文字咋辦。因而就開始有各類charset。好比說big5,就是專精繁體中文的charset。這種charset2byte表示了全部中文繁體字以及一些基本的英文字符。你能夠理解成這是一個巨大的map2byte所表示的值做爲key。但遇到韓國字日本字的時候,他就沒法找到對應的字符,或者說對應到一些奇怪的字符上去。由於這個charset原本就不是給韓文日語準備的。unicode

 

終於人們受夠了各類各樣的charset。開發出了unicode。一個超級巨大的表格,用4byte能夠表示全部的字符,各個國家的都能涵蓋進去。開發

UTF32,即用32bit表示各類千奇百怪的字符it

 

然而,若是我只想寫英文字符,那每一個字符我明明能用1byte搞定,爲啥非要用4個,這樣豈不是浪費不少空間,文件大小也會變大不少。sed

因此有了UTF8coding

UTF8頗有意思,若是是0-127,即ASCII能搞定的英文字母,那他就是一個byte搞定,byte最左邊那位是0,後面7位表示ascii0-127map

若是在ascii以外,意味着他須要多個byte,那麼他的第一個byte就負責告訴你他一共須要多少個byte(包括這個byte)。好比說我要寫個奇怪的不知道是哪一個國家的複雜字符,可能須要4byte。開頭第一個byte就是11110000,後面三個byte用來表示這個字符在unicode的那個巨大表格里的key英文

相關文章
相關標籤/搜索