天天看點

python常用編碼 Unicode & UTF-8

在python中要使用中文的話,需要在前2行加入

# coding=utf-8
           

或者

# -*- coding: utf-8 -*-
           

因為python預設采用ASCII編碼,而ASCII編碼并沒有包含中文字元。

計算機中以二進制來存儲資訊,計算機最先在美國出現,美國人用8 bit(即8個二進制碼)來表示單個字元。

為了在計算機中使用中文,中國誕生了GB2312和GBX等中文編碼,但是各個國家各自搞一套編碼不好交流

ISO組織頒布了Unicode編碼,後面又誕生了UTF-8。

一、ASCII 編碼

1、編碼長度:8位 ,定長

2、編碼規則:

a、0x00~0x1f 及0x7f (共33個)是控制字元或通信專用字元(其餘為可顯示字元),如控制符:LF(換行)、CR(回車)、FF(換頁)、DEL(删除)、BS(倒退)、等;

ASCII值為8、9、10 和13 分别轉換為倒退、制表、換行和回車字元。

b、32~126(共95個)是字元(32是空格),其中48~57為0到9十個阿拉伯數字。

c、65~90為26個大寫英文字母,97~122号為26個小寫英文字母,其餘為一些标點符号、運算符号等。

3、可用字元:英文,數字,半角符号

二、Unicode

1、編碼長度:16位,定長

2、編碼規則:Unicode 的編碼方式與 ISO 10646 的通用字元集(亦稱[通用字元集])(Universal Character Set,UCS)概念相對應,目前的用于實用的 Unicode 版本對應

于 UCS-2,使用16位的編碼空間。也就是每個字元占用2個位元組。這樣理論上一共最多可以表示 216 個字元。基本滿足各種語言的使用。實際上目前版本的 Unicode

  尚未填充滿這16位編碼,保留了大量空間作為特殊使用或将來擴充。

3、可用字元:中文、英文、各國文字

三、UTF-8

1、編碼長度:單位元組字元8位,變長

2、編碼規則:

a、單位元組的字元,位元組第一位為0,對于英文字母、數字和符号,UTF-8隻占用一個位元組,和ASCII碼一樣

b、多位元組的字元(字元數為n,n>1),第一個位元組前n位為1,第n+1為0,剩餘的(n-1)個位元組開頭用10****** ,後面用Unicode補齊,同時高位補0

3、可用字元:中文、英文、各國文字

UTF-8是面向傳輸的,它在保證傳輸各國文字的同時,減少了傳輸過程中所需要的碼元數量,簡單來說流量和硬碟空間的消耗。