Python:字符编码问题

时间:2017-02-11 10:22:08

标签: python encoding character-encoding web-scraping

我使用BeautifulSoup从网页抓取数据。为了测试,我将所有内容输出到控制台。一切都很好。现在我想将数据写入文件,但在一段时间后得到以下错误:

  

UnicodeEncodeError:'latin-1'编解码器无法编码字符'\ u0107'   第57位:序数不在范围内(256)

问题似乎是这封信:ć

我使用此代码写入文件:

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

如果我将代码的编码更改为encoding='utf-8',则异常消失,但写入的文件中的特殊字符看起来不对:Kuzmanović应该是Kuzmanović

2 个答案:

答案 0 :(得分:0)

您可以使用codecs以unicode编写文本:

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

答案 1 :(得分:0)

我的问题是我想保存数据的文件没有正确的编码。我使用utf-8创建了新文件,然后就可以了。

最初,我应该确保创建的文件是UTF-8。