[ python ] 字符編碼

字符編碼

  這裏主要描述如下三種編碼方式:python

  (1)ASCII編碼

  (2)unicodespa

  (3)uft-8code

  (4)gbkblog

 

ASCII 碼內存

  在計算機內部,全部的信息最終都是一個二進制值。每個二進制位(bit)有0和1兩種狀態,所以 8 個 二進制位就能夠組合成 256 種狀態,這被稱爲一個字節(byte)。也就是說,一個字節一共能夠用來表示 256種不一樣的狀態,每個狀態對應一個符號,就是 256 個符號,從 00000000 到 11111111utf-8

  美國定製了一套字符編碼,對英語字符與二進制位之間的關係,作了統一規定。這被稱爲 ASCII 碼,一直沿用至今。unicode

 

  一個字符用 1 個字節表示  1 byte = 8 bitit

  ASCII 碼只包含字母和英文中的特殊符號,不包括漢字;字符編碼

 

unicode (萬國碼)

  世界上存在不少種不一樣的編碼,同一個二進制數字能夠被解釋成不一樣的符號。所以,想要打開一個文本文件,就必須知道它的編碼方式,不然用錯誤的編碼方式打開就會出現亂碼。若是有一種編碼,將世界上全部的符號都歸入其中。每個符號都給予一個獨一無二的編碼,那麼亂碼問題就會消失。這就是 unicode 萬國碼的由來,這是一種全部符號的編碼。

 

  字母:

    一個字母等於 4 個 byte = 32 bit

  漢字:

    一個字母等於 4 個 byte = 32 bit

  

1. unicode 的問題

  須要注意的是, unicode 只是一個字符集,它規定了符號的二進制代碼,卻沒有規定這個二進制代碼應該如何存儲。

  (1)如何才能區分 unicode 和 ASCII ? 計算機怎麼知道三個字節表示一個符號,而不是分別表示三個符號呢?

  (2)英文在 ASCII 碼中,只須要一個字節表示就夠了,若是採用 unicode 統一規定,每一個符號用三個或四個字符表示,這對於存儲來講是極大的浪費,文本文件的大小胡所以大出二三倍。

 

UTF-8 

  互聯網的普及,強烈要求出現一種統一的編碼方式。utf-8 就是在互聯網上使用最廣的一種 unicode 的實現方式。

  字母:

    一個字母等於 2 byte = 8 bit

  漢字:

    一箇中文等於 3 byte = 24 bit

 

GBK

  包含所有中文字符,utf-8則包含全世界全部國家須要用到的字符;

  字母:

    一個字母 1 byte = 8 bit

  漢字:

    一個漢字 2 byte = 16 bit

 

 =、==、is 三者的使用說明

1. = 賦值

例子:

s1 = 'hkey'
s2 = 'xiaofei'

 

2. ==  比較值是否相等

print( 1 == 2)

# 執行結果:
# False

 

3. is 比較內存地址

s1 = 6
s2 = 6

print(s1 is s2)

# 執行結果:
# True

s11 = 'adfadsasdfasdff'
s22 = 'adfadsasdfasdff1'

print(s11 is s22)

# 執行結果:
# False
相關文章
相關標籤/搜索