Python3中的字符串是Unicode字符串而不是字節數組
用\u及4個十六進制的數字可以從Unicode256個基本多語言平面中指定某一特定字符。
Python爲此而設定的轉義序列以\u開頭,後面緊跟8個十六進制的數字,其中最左一位需位0
- 使用UTF-8編碼和解碼
對字符串進行處理時,並不需要在意Python中的Unicode字符的存儲細節,我們只需要完成兩件事情
1.將字符串編碼爲字節;
2.將字節解碼爲字符串
- 編碼
是將字符串轉化爲一系列字節的過程。字符串的encode()函數將unicode編碼轉換成其他編碼的字符串,如str2.encode(‘gb2312’),表示將unicode編碼的字符串str2轉換成gb2312編碼。
a='u\1204'
print(type(a))
print(type(a.encode('utf8')))
print(a.encode('utf8'))
<class 'str'>
<class 'bytes'>
b'uP4'
將u轉換爲b
- 解碼 從外界文本源(文件、數據庫、網站、網絡API)獲得所有文本都是經過編碼的字符串。我們只要解碼就可以。
解碼是將字節序列轉化爲U你從的字符串decode(解碼)的作用是將其他編碼的字符串轉換成unicode編碼,如str1.decode(‘gb2312’),表示將gb2312編碼的字符串str1轉換成unicode編碼。
print(type(a.encode('utf8').decode('utf8')))
<class 'str'>
print(a.encode('utf8').decode('utf8'))
uP4
編碼->解碼=u>b>正常可見字符
注意:
保存進txt文件即其餘都要用u或者字符串 不能用b會報錯誤
個人理解,如有錯誤歡迎指出