前言
在做爬蟲的時(shí)候钦幔,看到數(shù)據(jù)中有如下的數(shù)據(jù):
文本如下:
è§?????¥?????o?1???2???9???10???13??·?¥?
這種奇怪的字符是因?yàn)槎M(jìn)制碼被decode為了'iso-8859-1'的編碼格式枕屉,而不是正確的'utf8'
python3的編碼與解碼
-
encode (編碼) : 將字符串轉(zhuǎn)成二進(jìn)制
語(yǔ)法:
str.encode(encoding='UTF-8',errors='strict')
ps:
- 'UTF-8' 中大小寫不敏感,短橫杠可有可無, 舉個(gè)栗子: str.encode('uTf8') 也可以鲤氢。
- 默認(rèn)使用UTF-8編碼
-
Decode (解碼) : 將二進(jìn)制碼轉(zhuǎn)為指定編碼的字符串
語(yǔ)法:
bytes.decode(encoding="utf-8", errors="strict")
出現(xiàn)編碼錯(cuò)誤的原因
瀏覽器將使用了錯(cuò)誤的解碼方式解碼了二進(jìn)制數(shù)據(jù)
解決辦法:先使用和瀏覽器一樣的錯(cuò)誤編碼方式編碼后搀擂,再使用正確的解碼方式解碼。
代碼
a = 'è§?????¥?????o?1???2???9???10???13??·?¥?'
b = a.encode('iso-8859-1')
print('b: ', b)
c = b.decode()
print('c: ', c)
結(jié)果如下:
縮略圖:
成功解碼卷玉!