py文件默認ascii編碼科平,當字符集為uft-8是,在文件頭部加入以下代碼防止亂碼:
# -*- coding: utf-8 -*-
每次抓取網頁數據后姜性,都會出現
'ascii' codec can't encode characters in position 0-3: ordinal not in range(128)
的錯誤瞪慧,查出是python編碼的問題。
兩種解決思路:
1.代碼中添加
import sys
reload(sys)
sys.setdefaultencoding('utf8')
2.全局文件修改
在Python安裝目錄下的Lib/site-packages目錄中部念,新建一個sitecustomize.py文件(也可以建在其它地方弃酌,然后手工導入氨菇,建在這里,每次啟動Python的時候設置將自動生效)妓湘,內容如下:
importsys
sys.setdefaultencoding('utf-8')#set default encoding to utf-8
然后可以查看到改變已經生效
>>>importsys
>>> sys.getdefaultencoding()
'utf-8'
此時運行程序查蓉,如果仍然報告之前的錯誤,只需要顯示地設定輸出的編碼
prints.encode('utf-8')
就可以看到正確顯示榜贴。