Python:基礎數據類型:bytes


Python:基礎數據類型---bytes

由於Python的字符串類型是str,在內存中以Unicode表示,一個字符對應若干個字節。如果要在網絡上傳輸,或者保存到磁盤上,就需要把str變為以字節為單位的bytes

Python對bytes類型的數據用帶b前綴的單引號或雙引號表示:

b1 = b'alex'
print(b1,type(b1)

b'alex' <class 'bytes'>

要注意區分'ABC'b'ABC',前者是str,后者雖然內容顯示得和前者一樣,但bytes的每個字符都只占用一個字節。 

 

字符串與bytes相互轉換:

s1 = 'alex'
# str ---> bytes encode 編碼
b1 = s1.encode('utf-8')
print(b1)
# bytes---> str  decode 解碼
s2 = b1.decode('utf-8')
print(s2)

b'alex'
alex

 

指定編碼轉換:

s1 = 'alex'
b2 = s1.encode('gbk')
s3 = b2.decode('gbk')
print(b2)
print(s3)

b'alex'
alex

 

中文轉換時,不同的編碼不能直接轉換報錯如下

s4 = '中國'
b4 = s4.encode('utf-8')
s5 = b4.decode('gbk')
print(s5)

UnicodeDecodeError: 'gbk' codec can't decode byte 0xad in position 2: illegal multibyte sequence

 

s4 = '中國'
b4 = s4.encode('utf-8') # utf-8 bytes
print(b4)
b6 = b4.decode('utf-8') # utf-8 unicode
print(b6)
b7 = b6.encode('gbk')   # gbk  bytes
print(b7)

b'\xe4\xb8\xad\xe5\x9b\xbd'     #不同編碼的bytes數據,長度不一樣
中國
b'\xd6\xd0\xb9\xfa'


免責聲明!

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



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