Python 我应该如何处理UnicodeDeer错误:

Python 我应该如何处理UnicodeDeer错误:,python,unicode,decode,encode,Python,Unicode,Decode,Encode,看起来有很多这样的UnicodeEncodeError错误,但没有一个对我有用 我得到这个错误: Traceback (most recent call last): File "...", line 86, in <module> File "...", line 16, in decode return codecs.utf_8_decode(input, errors, True) UnicodeEncodeError: 'ascii' codec can't

看起来有很多这样的
UnicodeEncodeError
错误,但没有一个对我有用

我得到这个错误:

Traceback (most recent call last):
  File "...", line 86, in <module>

  File "...", line 16, in decode
    return codecs.utf_8_decode(input, errors, True)
UnicodeEncodeError: 'ascii' codec can't encode character u'\xf8' in position 255: ordinal not in range(128)
回溯(最近一次呼叫最后一次):
文件“…”,第86行,在
文件“…”,第16行,解码
返回编解码器.utf_8_解码(输入,错误,真)
UnicodeEncodeError:“ascii”编解码器无法对255位的字符u'\xf8'进行编码:序号不在范围内(128)
我该怎么办?

您的数据已经在
新文本中解码了。您可以混合使用unicode和字节字符串数据,也可以只使用unicode值

发生的情况是,您要求Python对已经解码的数据进行解码,这是一个
unicode
对象。为了实现这一点,Python将首先使用默认的ASCII编码将其编码为字节。这对于那些对象来说是失败的

要么不解码(如果您的所有数据都已解码为
unicode
对象),要么区分需要解码的对象与已经是
unicode
的对象:

[x.decode('utf-8') if isinstance(x, str) else x for x in new_text]

你的完整回溯是什么?您要打印到什么(IDE控制台?终端?Windows控制台?管道?)请注意,该错误是一个编码错误,因此不是由解码直接引发的。@MartijnPieters A
decode
将首先执行隐式
编码(如果字符串不是unicode);它符合症状。@Markransem:是的,这就是为什么我将我的评论限定为不直接。我打印的目的是什么?你这是什么意思?这个问题我已经研究了一段时间(4个小时),但仍然不起作用。我该怎么办?这没有给出错误,但它仍然没有在搜索的字母中给出新的文本。这是我得到的文本:
ik\nan gkvfscscennrr\n ip vainsateyai u\xe5 l rmne vpb 0te\xe6totaktlaks s enns/ndn vs seeean\xe6o1mirglst.diofe Mnsoas,esfs btelue vlrafsttsefne2kted ok e.n v.fnl,dkky k)entet Imdssk rsedfrg\ngt thgee\n-oKmraeo\n g neme tpsTrs a\emv\ndtkg\xe5,nrn t pim\xf8mrgr pk\xe6 arenea r iryiksdrlh\xe6 m.
@py.codan:我不知道你在问什么。您想知道为什么打印的数据使用转义序列吗?如果是这样,请查看并打印单个元素(
print new_text[0]
)或生成一个unicode对象(print
u'。join(new_text)
)。@py.codan:请考虑到将unicode数据打印到不支持您的代码点的控制台可能会导致更多编码错误。Windows consose对此特别敏感。我想要一个随机文本,包含从
输入中获取的字母。在本文中,我需要55个字母,这些字母应该包括æø。它不应该给任何意义(新的文本),但它应该包括我显示的这些字母。文本本身并没有错,它有“正确”的结构,但它应该是Unicode(我认为)。print u“”。join(new_text)帮助了我!非常感谢@Martijn Pieters!