[英]Encoding error Python3.5
所以我在Python3.5中遇到一個奇怪的編碼錯誤,正在讀取一個包含html-data的字符串,並且正在像這樣處理字符串:
def parseHtml(self,url):
r = requests.get(self.makeUrl())
data = r.text.encode('utf-8').decode('ascii', 'ignore')
self.soup = BeautifulSoup(data,'lxml')
當我嘗試打印以下內容時發生錯誤:
def extractTable(self):
table = self.soup.findAll("table", { "class" : "messageTable" })
print(table)
我檢查了我的語言環境,並嘗試了編碼/解碼的各種變體,如之前關於SO的類似文章所述。 (對我而言)最奇怪的是,腳本可以在另一台計算機和筆記本電腦上完美運行。 但是在我的Windows機器(使用cygwin到遠程服務器)和我的Ubuntu安裝上,它根本無法運行並給我:
UnicodeEncodeError: 'ascii' codec can't encode character '\xa0' in position 1273: ordinal not in range(128)
好的,所以我將文件從遠程服務器移到了本地計算機上,並且執行得很好。 然后,我檢查了sys.stdout.encoding:
>>> import sys
>>> sys.stdout.encoding
'ANSI_X3.4-1968'
顯然有什么問題,所以我最終導出了:
export PYTHONIOENCODING=utf-8
瞧!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.