2015-09-24 80 views
0

從一個網頁,我srcaped一個詞「Zápas」。問題在於我的數據中最接近的版本如​​下所示:在windows-1250編碼之後的Z \ xe1pas。沒有那個str(a)有一些ANSI錯誤。 謝謝你的幫助。編碼斯洛伐克字母,如:ášČé

我嘗試:

def encode(text): 
    return text.encode('windows-1250')... 
... 
for cell in row.findAll(['td', 'th']): 
    cell=encode(cell.get_text().strip()) 
    a.append(cell) 
foo.write(str(a)+"\n") 
+0

爲什麼你手動編碼而不是讓'foo'處理它? –

+1

對於涉及unicode的任何事情,指定Python 2或Python 3以及(最好)標記非常重要。 – nigel222

回答

1

可能是a字符串實際上是一個unicode字符串。要將它寫入字節流,您應該將其編碼爲指定編碼的字節字符串,您的情況爲windows-1250,我的編碼爲utf-8。只要使用a.encode(<encoding>) before sending result to the foo.write()`:

foo.write(a.encode("utf-8")) 

此外,我會處理在unicode整個數據轉換爲字節串立即發送數據「外」(文件之前,對遠程目標等)