簡體   English   中英

編碼錯誤Python3.5

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM