'gbk' codec can't encode character '\xa0' in position 1534: illegal multibyte sequence


運行代碼錯誤如題:

url = 'http://blog.csdn.net/dc_726/article/details/45399457'
# pretend as a browser
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1;\
             WOW64; rv:23.0) Gecko/20100101 Firefox/23.0 '}

req = Request(url, headers=headers)
html = urlopen(req)
bsHtml = BeautifulSoup(html)
text = bsHtml.find('div', id="article_content")

print(text)


1.讀取過程中己將文本編碼爲utf-8,  故錯誤的原因在打印過程(print())中,實際上,窗口錯誤提示已明確指出:

File "D:/Project/python/Text/text.py", line 34, in <module>
    print(text)


2.print() 系統默認爲gbk編碼格式,即程序運行時將對text進行gbk編碼,後輸出時對其進行解碼,故考慮用下列改之:(應該可以採用更改系統設置的方法的。。)

print(text.encode('gbk','ignore').decode('gbk'))
注意:倘若你去掉上面的decode(‘gbk’),輸出的將是字節形式,以爲此時系統運行時判斷不需要對其進行編碼,故也不會進行解碼。



有關的編碼問題:

1.文件編碼:主要來處理文件中出現的中文,可在文件頭加:

# -*- coding:utf-8 -*-    


2.運行時編碼:如上例。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章