在計算機中,全部信息最終都能以二進制字符串來表示。二進制位又叫作比特(bit),每一個比特有0和1兩種狀態,8個比特構成了1個字節(byte),1個字節能夠表示256種狀態。html
ASCII碼一共規定了128個字符的編碼,這128個符號(包括32個不能打印出來的控制符號),只佔用了一個字節的後7位,最前面的1位統一爲0。編碼
Unicode是一個容納了上百萬字符的字符集,規定了每一個字符的二進制代碼。可是沒有制定具體的存儲規則,例如當用3個字節存儲一個字符時,它同時能夠被理解爲存儲了3個ASCII碼,另外咱們都知道ASCII碼是用1個字節存儲,當規定用3個字節存儲字符時,就形成了空間的極大浪費。
Unicode同時也兼容了ASCII碼。code
UTF-8是實現了Unicode的方式之一,特色是變長編碼,它使用1-4個字節表示一個符號。htm
編碼規則:blog
總結爲下表,x表示字符utf-8
Unicode符號範圍 | UTF-8編碼方式 (十六進制) | (二進制) --------------------+--------------------------------------------- 0000 0000-0000 007F | 0xxxxxxx 0000 0080-0000 07FF | 110xxxxx 10xxxxxx 0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx 0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
例:
「嚴」字的Unicode編碼爲100111000100101,用十六進制表示爲U+4E25,處在上表的第三行。換成UTF-8則須要3個字節,二進制代碼爲11100100 10111000 10100101,轉換成十六進制爲E4B8A5。ci
參考:http://www.ruanyifeng.com/blo...unicode