【问题标题】:Python: Character encoding issuePython:字符编码问题
【发布时间】:2026-02-05 17:30:01
【问题描述】:

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

UnicodeEncodeError: 'latin-1' codec can't encode character '\u0107' in 位置 57:序数不在范围内(256)

问题似乎是这封信:ć

我使用此代码写入文件:

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

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

【问题讨论】:

  • 我想我的问题是我想保存数据的文件没有正确的编码。我用 utf-8 创建了新文件,现在它似乎可以工作了。当我确定时会报告。
  • 如果您将文件保存为“utf-8”,那么您必须告诉打开该文件的工具使用 UTF-8,或者将其设置为默认使用 UTF-8,如果是这样的话可能。

标签: python encoding character-encoding web-scraping


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】: