2017-02-11 160 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")