python2預設的編碼是ASCII碼
python3預設的編碼是utf-8
思路:先将現有編碼轉為unicode,再轉為目标編碼
encode() –> decode()
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5CMlR2MkhjZ4EWZ2MTZzcDO3QWM0UTO5ATOihjZiRDN48CX5d2bs92Yl1iclB3bsVmdlR2LcNWaw9CXt92Yu4GZjlGbh5yYjV3Lc9CX6MHc0RHaiojIsJye.png)
# -*- 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