python3 字串編碼相關

2021-08-22 13:49:12 字數 1258 閱讀 3671

編碼型別很多,常見的例如:

ascii碼:最早被編入計算機中的,長度是128,,主要是為了解決英文本元

gb2312:中國人編碼的,為了解決中文

unicode:統一多種編碼方式,降低亂碼

utf-8:unicode的改進版,節省編碼長度

python3預設編碼方式是:utf-8

編碼方式相互轉換

decode:將已知其他編碼形式的位元組編譯成unicode形式的字串,返回值為str型別

只有bytes物件才能呼叫decode

>>>x = b'1he\xd0\xa1\xb0\xd7'

>>>x1 = x.decode('gbk')

>>>print(type(x1))

>>>print(x1)

'str'>

1he小白

encode:以unicode的編碼的字串才能呼叫這個方法,並且返回的是以b』開頭的bytes型別

作用就是將unicode的編碼的字串,編譯成需要的編碼形式位元組

>>>print('1he小白'.encode('gbk'))

>>>print(type('1he小白'.encode('gbk')))

b'1he\xd0\xa1\xb0\xd7'

'bytes'>

補充說明:

bytes 型別由是 ascii範圍內的字元和其它十六進製制形式的字元資料,但不能用中文等非ascii字元表示

那麼字串與位元組之間的轉換方法:

字串—>位元組

str.encode(『xx』)或者bytes(str,』xx』),xx填的是str想要轉化的編碼型別

位元組—>字串

b』hexiaobai』.decode(『xx』)或者str(b』hexiaobai』,』xx』)

部分無法轉義的位元組怎麼處理?

b』…』.decode(『xx』,errors = 『ignore』)

補充幾個個方法:

len():字串呼叫時返回的是字元個數

位元組呼叫時返回的是位元組個數

ord():獲取單個字元的整數編碼,

chr():把編碼轉換為對應的字元

檢視編碼型別

from chardet import detect

a = b'dsad'

print(detect(a))

Python 3「字串和編碼「

python3 字串是以unicode編碼 字元的表示轉換函式 str變為bytes方法 bytes變為str方法 注意!中文不能轉為ascii編碼 len 函式 儲存源 時,通常要在檔案開頭加上兩行 usr bin env python3 coding utf 8 格式化 小明的成績從去年的72分...

python3字串編碼和解碼

雖然這是乙個很基礎的問題,但是博主一直都是瞎貓碰死耗子的心態去試,因為對於中文就那麼幾種encode方式 編碼解碼 一般來說由一種字串變成二進位制串的過程叫encode 反之稱為decode 通常我們寫乙個文件時,無論是通過word pycharm notepad 這些,都會有乙個東西叫解碼方式,出...

python3字串相等 python3 字串

1 拼接 1 多個字串進行連線 連線符,必須左右資料型別一致 例 print hello world 結果 helloworld 例 print 5 world 結果 typeerror unsupported operand type s for int and str 2 多個相同字串連線 字串...