1. 程式人生 > 其它 >python-字符集和編碼

python-字符集和編碼

一、知識點

【1】基本概念

  1. 位:計算機中的最小編碼,二進位制中的一位,0/1
  2. 位元組:8位組成1個位元組
  3. 字元:我們看見的文字和符號(漢字、標點、英文、表情)
  4. 字符集:字元的集合,一套文字元號集合的描述
  5. 編碼:將字元轉換成0/1
  6. 解碼:將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傳輸