Unicode与编码python文本处理

Unicode与编码python文本处理,python,unicode,encoding,Python,Unicode,Encoding,我正在用从网上刮下来的文本进行一些文本处理。我以前想解码原始文本 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

我正在用从网上刮下来的文本进行一些文本处理。我以前想解码原始文本

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)
我将处理许多语言,但不是那么多的网页(所以我的想法是手动设置编码)。我希望能够将所有语言(英语、法语、西班牙语、葡萄牙语)转换为一个共同的基础,以便进行工作。您有什么建议?

如果
原始html.decode()
给您一个编码异常,那么它已经是Unicode:

>>> u'é'.decode('latin1')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 0: ordinal not in range(128)
>u'é'。解码('latin1')
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
UnicodeEncodeError:“ascii”编解码器无法对位置0中的字符u'\xe9'进行编码:序号不在范围内(128)

因为Python 2在尝试“解码”Unicode值时首先隐式地尝试编码(使用默认的ASCII编解码器)。

您正在编码为拉丁语-1,而不是UTF。您是如何读取
raw_html
?@MartijnPieters刚刚在编码中为UTF-8编辑的。这是一个错误,当张贴。。。原始html是作为文本文件提供给我的。。。我在寻找同一个网站的HTML源代码,我的HTML似乎已经通过了某种形式的编码/解码,因为有些字符是不同的。。。是否可以将其恢复为HTML原始编码?然后应用我的代码?没有看到任何无法诊断的样本。您可能使用了错误的编解码器,或者该文件可能使用了错误的编解码器重新编码。后者通常是可以修复的,但我只是笼统地说。然而,这将是一个新问题!谢谢很抱歉刚刚意识到错误。。。当我尝试将其编码为UTF-8时,我得到了以下错误:UnicodeWarning:Unicode equal comparison未能将两个参数转换为Unicode-将它们解释为不相等。是否因为某些字符不能用UTF-8编码?在这种情况下,用unicode处理文本会更有意义,不是吗?谢谢你的帮助!!尽可能使用Unicode。解码Unicode毫无意义,毕竟您已经解码为Unicode。请检查打印类型(原始html)。很抱歉打扰您。。但这让我发疯。。。Python是否以某种格式对加载的文本进行编码?我试图通过文本文件中看到的unicode(\u20ac)匹配欧元符号(€),但在导入时它似乎无法识别。。。你知道我可能做错了什么吗?我正在使用r'\\u20ac?\b'来匹配它,如果我手动输入字符串作为变量,效果会很好…也许这是一个新问题?为什么要转义Unicode转义而不使用
ur'.'
原始Unicode值?谢谢!我将把它表述为一个新问题。