什麼是 Unicode
Unicode(統一碼、萬國碼、單一碼)是計算機科學領域裏的一項業界標準,包括字符集、編碼方案等。Unicode 是爲了解決傳統的字符編碼方案的侷限而產生的,它爲每種語言中的每個字符設定了統一併且唯一的二進制編碼,以滿足跨語言、跨平臺進行文本轉換、處理的要求。1990年開始研發,1994年正式公佈
什麼是 UTF-8 編碼
UTF-8(8-bit Unicode Transformation Format)是一種針對Unicode的可變長度字符編碼,又稱萬國碼。由Ken Thompson於1992年創建。現在已經標準化爲RFC 3629。UTF-8用1到6個字節編碼Unicode字符。用在網頁上可以統一頁面顯示中文簡體繁體及其它語言(如英文,日文,韓文)。
中文是如何進行 UTF-8 編碼的
從上面可以得知, 包括中文在 unicode
編碼集也會有對應的二進制碼(目前都是以 16 進製表示)
比如 你好
對應的 unicode
爲 \u4f60\u597d
去掉前面的 \u
轉義符號剩下 4f60
597d
, 編碼規則如下
Unicode | bit數 | UTF-8 |
---|---|---|
0000 ~ 007F | 0~7 | 0XXX XXXX |
0080 ~ 07FF | 8~11 | 110X XXXX 10XX XXXX |
0800 ~ FFFF | 12~16 | 1110XXXX 10XX XXXX 10XX XXXX |
1 0000 ~ 1F FFFF | 12~16 | 11110XXX 10XX XXXX 10XX XXXX 10XX XXXX |
編碼以此類推
你好
對應的 Unicode
編碼爲 4f60
597d
範圍在 0800 ~ FFFF
對應的 UTF-8
格式爲 1110 XXXX 10XX XXXX 10XX XXXX
, 4f60
對應的二進制編碼爲 01001111 01100000
把 X 按順序填進去得到 11100100 10111101 10100000
再轉爲 16 進製得到 E4BDA0
python 中字符串前面加個 u, 如: u’你好’, 表示的是 你好
的 Unicode
編碼