天天看點

Python程式設計:關于編碼解碼及UnicodeDecodeError

python2預設的編碼是ASCII碼

python3預設的編碼是utf-8

思路:先将現有編碼轉為unicode,再轉為目标編碼

encode() –> decode()

Python程式設計:關于編碼解碼及UnicodeDecodeError

# -*- coding:gbk -*-

import sys

print(sys.getdefaultencoding())  # 擷取預設編碼方式
# ->utf-8

s = "你好"

print(s.encode("gbk"))  # 轉為位元組
# ->b'\xc4\xe3\xba\xc3'

print(s.encode("gb2312"))
# ->b'\xc4\xe3\xba\xc3'

print(s.encode("utf-8"))
# ->b'\xe4\xbd\xa0\xe5\xa5\xbd'

print(s.encode("utf-8").decode("utf-8")) # 轉為字元
# ->你好      

解決UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xe5

Python的str預設是ascii編碼,和unicode編碼沖突,就會報這個标題錯誤。那麼該怎樣解決呢?

通過搜集網上的資料,自己多次嘗試,問題算是解決了,在代碼中加上如下幾句即可。

import sys
reload(sys)
sys.setdefaultencoding('utf8')      

參考:

https://blog.csdn.net/u010159842/article/details/54380523