python-字符集和編碼
阿新 • • 發佈:2022-05-08
一、知識點
【1】基本概念
- 位:計算機中的最小編碼,二進位制中的一位,0/1
- 位元組:8位組成1個位元組
- 字元:我們看見的文字和符號(漢字、標點、英文、表情)
- 字符集:字元的集合,一套文字元號集合的描述
- 編碼:將字元轉換成0/1
- 解碼:將0/1轉換成字元
【2】字元編碼發展:ASCII、GB2312、GBK(相容漢字)、GB18030(相容少數名族語言)、ucs(必須2位開始,不足2位用0擴充,會造成空間浪費)、unicode、UTF8(可以用1,2,3個位元組表示1個字元,相容性高)
【3】python3預設編碼是UTF8,支援直接輸出漢字等
二、字串和bytes型別
【1】ord和chr函式
【2】資料型別:bytes,要在字串前面加上b
【3】字串和bytes型別的相互編碼和解碼
【4】bytes型別用來網路傳輸,字串不能網路傳輸
三、具體程式碼
# -*- coding:utf-8 -*- # __author__:pansy # 2022/5/8 # 一、兩個函式: # 1、ord函式:單個字元的整數表示 # 2、chr函式:整數的字元表示 print(ord('潘')) # 28504 print(chr(28504)) # 潘 # 二、資料型別 a = 'abc' # 字串型別 print(type(a)) b = b'abc' # bytes型別,在字串前面加上b print(type(b)) # 三、字串和bytes型別編碼解碼(注:編碼和解碼的字元編碼型別需要一致) c = '啊啊啊,pan' d = c.encode('utf8') # 字串編碼,b'\xe5\x95\x8a\xe5\x95\x8a\xe5\x95\x8a\xef\xbc\x8cpan' print(d) e = b'\xe5\x95\x8a\xe5\x95\x8a\xe5\x95\x8a\xef\xbc\x8cpan' print(e.decode('utf8')) # 解碼 # 四、bytes型別作用:網路傳輸;不能直接用字串傳輸,要用bytes傳輸