報錯處理(UnicodeEncodeError: 'gbk' codec can't encode character '\xa0' in position 2: ill egal multibyte sequence)


參照文【https://blog.csdn.net/Dillon2015/article/details/53204955】的說法,

第一個錯

  • UnicodeEncodeError:'gbk' codec can't encode character '\xa9' in position 0:illegal multibyte sequence
  • 這個錯誤,網上給出的解釋是:
  • 某些軟件如notepad,在保存一個以UTF-8編碼的文件時, 會在文件開始的地方插入三個不可見的字符(0xEF 0xBB 0xBF,即BOM)。
  • 因此我們在讀取時需要自己去掉這些字符,python中的codecs module定義了這個常量:
  • 1 import io
    2 import sys
    3 #這里判斷下,把三個不可見的字符去除掉
    4 if data[:3] == codecs.BOM_UTF8:
    5     data = data[3:]
    6 print(data.decode('utf-8'))

     

第二個錯

  • UnicodeEncodeError:'gbk' codec can't encode character '\xa0' in position 0:illegal multibyte sequence
  • 看完貼子【https://blog.csdn.net/jim7424994/article/details/22675759#】
  • 后,才知道,原來是python的print()方法的問題。
  • 在python中, print()方法在Win7的默認編碼是gbk,它在打印時,並不是所有的字符都支持的。
  • 而且這個問題一般也就是在cmd中才會有。 在cmd中是改變標准輸出編碼:

1 import os,sys,io 2 sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='gb18030')

使用上面這兩句即可解決在CMD模式下運行出錯的狀態

 

編碼名稱 用途
utf8 所有語言
gbk 簡體中文
gb2312 簡體中文
gb18030 簡體中文
big5 繁體中文
big5hkscs 繁體中文

 

 


免責聲明!

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



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