如何解码unicode字符串Python

时间:2016-01-29 11:26:41

标签: python string unicode decode encode

解码编码字符串的最佳方法是什么:u'u\xf1somestring'

背景:我有一个包含随机值(字符串和整数)的列表,我正在尝试将列表中的每个项目转换为字符串,然后处理每个项目。

原来有些项目格式为:u'u\xf1somestring' 当我尝试转换为字符串时,出现错误:UnicodeEncodeError: 'ascii' codec can't encode character u'\xf1' in position 1: ordinal not in range(128)

我试过了

item = u'u\xf1somestring'
decoded_value = item.decode('utf-8', 'ignore')

但是,我一直收到同样的错误。

我已经阅读过有关unicode字符的内容,并尝试了一些来自SO的建议,但到目前为止还没有任何建议。我在这里错过了什么吗?

2 个答案:

答案 0 :(得分:6)

您需要调用encode函数而不是decode函数,因为item已经解码。

像这样:

decoded_value = item.encode('utf-8')

答案 1 :(得分:3)

该字符串已经 解码(它是一个Unicode对象)。如果要将其存储在文件中(或将其发送到哑终端等),则需要编码它。

通常,在使用Unicode时,你应该(在Python 2中)在工作流的早期解码你的所有字符串(你似乎已经完成了;许多处理互联网流量的库已经为你做了),然后做您在Unicode对象上的所有工作,然后在最后,当写回来时,将它们编码为您正在使用的任何编码。