如何解码unicode字符串Python

2024-10-06 11:26:06 发布

您现在位置:Python中文网/ 问答频道 /正文

解码编码字符串的最佳方式是: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的一些建议,但到目前为止都没有成功。我是不是丢了什么东西?


Tags: 项目字符串in编码列表格式错误方式
2条回答

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

通常,在使用Unicode时,您应该(在Python2中)在工作流的早期对所有字符串进行解码(您似乎已经这样做了;许多处理internet流量的库已经为您这样做了),然后对Unicode对象执行所有工作,最后在写回它们时,把它们编码成你正在使用的任何编码。

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

像这样:

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

相关问题 更多 >