python中的字符編碼和str與bytes類型轉換


從某種意義上說,Python中只有兩種數據類型:str和bytes。

 

從str轉換成bytes,稱為編碼

從bytes轉換為str,稱為解碼

 

str是以Unicode方式編碼的
byte可以以utf8或者gbk等形式編碼

 

一、str轉bytes(編碼)

方法一:通過bytes()方法

s = 'hello世界'
b = bytes(s, 'utf8')

 

在utf8中,一個漢字占三個字節

print(b) # b是utf8編碼的bytes

  

上邊代碼執行結果如圖:

 

 方法二:通過str的內置函數encode()

b2 = s.encode('utf8')
print(b2)

  

二、bytes轉str(解碼)

方法一:用str()方法

s = str(b2, 'gbk')
print(s)  # 會出現漢字亂碼

  

亂碼原因:

b2是用utf8編碼成bytes的,必須用utf8解碼成str
str數據類型沒有編碼規則,是Unicode(萬國碼)

方法二:用bytes的內置函數decode()

s2 = b2.decode('utf8')
print(s2)

  

用什么格式編碼,就要用什么格式解碼


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM