編碼型別很多,常見的例如:
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 多個相同字串連線 字串...