2017-02-11 134 views
0

我使用BeautifulSoup從網頁中抓取數據。爲了測試,我將所有內容輸出到控制檯。一切工作正常。現在我想將數據寫入到文件中,但一段時間後收到以下錯誤:Python:字符編碼問題

UnicodeEncodeError: 'latin-1' codec can't encode character '\u0107' in position 57: ordinal not in range(256)

這個問題似乎是這封信:ć

我用這個代碼寫入文件:

with open('data.txt', 'a',encoding='iso-8859-1') as f: 
    f.write(text+'\n') 

如果我更改代碼的編碼encoding='utf-8'異常消失,然而在寫書面文件看上去是錯誤的特殊字符:Kuzmanović庫茲曼諾維奇

+0

我想我的問題是我想保存數據的文件沒有正確的編碼。我用utf-8創建了新文件,現在它似乎可以工作。我肯定會回來報告。 – beta

+0

如果將文件保存爲'utf-8',那麼您必須告訴打開該文件的工具使用UTF-8,或者將其設置爲使用UTF-8作爲默認值(如果可能的話)。 –

回答

0

我的問題是,這些文件我想保存的數據沒有正確的編碼。我用utf-8創建了新的文件,然後它就工作了。

最初,我應該確保創建的文件是UTF-8。

0

您可以使用codecs書寫文字與Unicode作爲:

import codecs 
with codecs.open("data.txt", "a", encoding="utf-8") as f: 
    f.write(text + "\n")