bit: 位,計算機最小的表示單位
bytes:字節,最小的存儲單位,1bytes=8bit,1bytes簡寫成1B
1KB = 1024B
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
......python
ASCII編碼是基於拉丁字母一套編碼,主要是顯示現代英語和其西歐語言,是最先通用的單字節編碼系統,具體ASCII對照表以下:
在對照表中須要記住的是大寫字母A的編碼是65,小寫字母a的編碼的97便可。
在python中能夠使用chr和ord方法進行轉換:編程
# 將數字類型轉換成ASCII對應的字符 print(chr(97)) # a # 將數字轉換成對應的數據 print(ord("A")) # 65 # 或者使用
但隨着事件的發展,ASCII編碼擴展到了256個字符,編碼 對照表以下:
其中後128個字符稱爲擴展ASCII碼編碼
因爲ASCII編碼只能由256個字符組成,然只能由1個字節來表示中文是不可能的,所以制定了GB2312編碼,用來表示中文的對照表code
爲了解決各個國家編碼衝突的問題,Unicode編碼就所以而生,Unicode把全部語言都統一到一套編碼裏面,就會避免衝突,產生亂碼。
Unicodeb標準在不斷髮展,最經常使用的是用兩個字節表示一個字符,也有的字符是4個字節,可是中文是佔兩個字節。若是統一成Unicode編碼,在存儲和傳輸上就不划算blog
爲了解決Unicode編碼存儲過大的問題,就推出了可變長編碼UTF-8,UTF-8編碼把一個Unicode字符依據不一樣的數據大小編程1~6個字節,其中中文就佔3個字節事件
能夠經過encode進行編碼,其中語法以下:utf-8
# 方式1: 經過bytes方法 bytes('a', 'ASCII') # 方式2: 經過encode方法進行 'a'.encode('ASCII')
# 方式1: 經過encode方法進行 print('你好'.encode('GBK')) # 編碼以後的結果爲:b'\xc4\xe3\xba\xc3' # 方式2: 經過bytes類型 print(bytes('我愛你', 'GBK')) # 編碼以後的結果爲:b'\xce\xd2\xb0\xae\xc4\xe3'
# 方式1: 經過encode方法進行 print('你好'.encode('unicode_escape')) # 編碼以後的結果爲:b'\\u4f60\\u597d' # 方式2: 經過bytes類型 print(bytes('我愛你', 'unicode_escape')) # 編碼以後的結果爲:b'\\u6211\\u7231\\u4f60'
# 方式1: 經過encode方法進行 print('你好'.encode('utf-8')) # 編碼以後的結果爲:b'\xe4\xbd\xa0\xe5\xa5\xbd' # 方式2: 經過bytes類型 print(bytes('我愛你', 'utf-8')) # 編碼以後的結果爲:b'\xe6\x88\x91\xe7\x88\xb1\xe4\xbd\xa0'
# 經過decode方法解碼 print(b'\xc4\xe3\xba\xc3\xce\xd2\xb0\xae\xc4\xe3'.decode('GBK')) # 解碼以後結果爲:你好我愛你
# 經過decode方法解碼 print(b'\xe4\xbd\xa0\xe5\xa5\xbd\xe6\x88\x91\xe7\x88\xb1\xe4\xbd\xa0'.decode('utf-8')) # 解碼以後結果爲:你好我愛你
# 經過decode方法解碼 print(b'\\u4f60\\u597d\\u6211\\u7231\\u4f60'.decode('GBK')) # 解碼以後結果爲:你好我愛你