【发布时间】:2013-12-10 00:58:25
【问题描述】:
我正在对从网络上抓取的文本进行一些文本处理。我之前在考虑解码原始文本
raw_html= raw_html.decode("iso-8859-1")
后来编码为 UTF,所以我不会遇到编码问题...
raw_html= raw_html.encode("UTF-8")
问题是,尽管知道网页编码,但我在解码部分不断收到错误...
UnicodeEncodeError: 'ascii' codec can't encode character u'\u20ac' in position 302: ordinal not in range(128)
我将处理多种语言,但不会处理太多网页(因此我的想法是手动设置编码)。我希望能够将所有语言(英语、法语、西班牙语、葡萄牙语)转换为一个共同的基础来使用。你有什么建议?
【问题讨论】:
-
您正在编码为 Latin-1,而不是 UTF..
-
你是怎么读到
raw_html的? -
@MartijnPieters 刚刚为编码中的 UTF-8 进行了编辑。发布时出现错误... raw_html 作为文本文件提供给我...我正在查看同一站点的 HTML 源代码,而我的 HTML 似乎已经通过某种形式的编码/解码字符不同...是否可以将其撤消回 HTML 原始编码?然后应用我的代码?
-
没有看到任何无法诊断的样本。您可能使用了错误的编解码器,或者文件可能已使用错误的编解码器重新编码。后者通常是可以修复的,但我说的是笼统的说法。然而,这将是一个新问题!