目錄
- 字元編碼
- 一. 什麼是字元編碼
- 二.字元編碼發展史
- 三.字元編碼實操
計算機内部隻識别二進制 但是使用者在使用計算機的時候卻可以看到各式各樣的語言字元
字元編碼:内部記錄了人類字元與數字對應關系的資料
隻跟文本檔案和字元串有關 與視訊檔案 圖檔檔案等無關
- 一家獨大
計算機最初是由美國人發明的 美國人為了能夠讓計算機識别英文字元
ASCII碼:裡面記錄了英文字元與數字的對應關系
用一個位元組來是對應關系
ps:所有的英文字元和符号加起來其實不超過127,之是以使用八位是為了後續發現新的語言
必須記住的對應關系有以下兩組:
0是48 A-Z:65-90 a-z:97-122

- 群雄割據
中國人為了能夠讓計算機識别中文 我們需要發明另外一套編碼表
GBK碼:記錄了英文中文與數字的對應關系,對于英文還是使用一個位元組,對應中文使用兩個位元組甚至更多位元組
ps:兩個位元組其實也不夠表示出所有的中文,遇到生僻字可能需要更多位來表示
日本人為了能夠讓計算機識别日文 也需要發明一套編碼表,shift_JIS碼:記錄了日文英文與數字的對應關系
南韓人為了能夠讓計算機識别韓文 也需要發明一套編碼表,Euc_kr碼:記錄了韓文英文與數字的對應關系
- 天下一統
為了能夠實作不同國家之間的文本資料能夠彼此無障礙交流需要對編碼統一
unicode(萬國碼) :統一使用兩個及以上字元記錄字元與數字的對應關系
utf8(萬國碼的優化版本):将英文還是用一個位元組存儲,将中文使用三個位元組或更多位元組存儲
ps:現在預設使用的編碼是utf8
1.如何解決檔案亂碼的情況
檔案當初以什麼編碼編的 打開的時候就以什麼編碼解
2.python解釋器版本不同帶來的編碼差異
python2.X内部使用的編碼預設是ASCII
檔案頭加coding:utf8,在python2中定義字元串前面要加一個小u
s = u'你' python3.X内部使用utf8
3.編碼與解碼
編碼
将人類能夠讀懂的字元按照指定的編碼轉換成數字
解碼
将數字按照指定的編碼轉換成人類能夠讀懂的字元
s = '每天不要想太多 學就完事了 幹就完了 奧利給!!!'
# 編碼
res = s.encode('utf8')
print(res, type(res)) # bytes 在python中直接将該類型看成二進制資料即可
# 解碼
res1 = res.decode('utf8')
print(res1)
# 必須是相同的編碼才可以