'ascii' codec can't decode byte 0xe5 in position 10: ordinal not in range(128)


python2.7

向Excel中寫入數據中含有中文就一直報錯

'ascii' codec can't decode byte 0xe5 in position 10: ordinal not in range(128)

 

查看網上解決方法

1、在代碼中添加如下幾行(無效)

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

2、替換默認編碼文件(無效)

如何永久地將默認編碼設置為utf-8呢?  有2種方法:
==================================
第一個方法<不推薦>: 編輯site.py, 修改setencoding()函數, 強制設置為 utf-8
第二個方法<推薦>: 增加一個名為 sitecustomize.py, 推薦存放的路徑為 site-packages 目錄下
sitecustomize.py 是在 site.py 被import 執行的, 因為 sys.setdefaultencoding() 是在 site.py 的結尾處被刪除的, 所以, 可以在 sitecustomize.py 使用 sys.setdefaultencoding().
#file name:  sitecustomize.py
import sys  
sys.setdefaultencoding('utf-8')   

3、強擊轉換編碼方式(無效)

for line in f.readlines():       
        key=keys[i]
        key=key.encode('utf-8')            

 

最后在創建Excel時強制編碼方式

book=xlwt.Workbook(encoding='utf-8')
sheet=book.add_sheet('sheet1', cell_overwrite_ok=True)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM