解码编码字符串的最佳方式是: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的一些建议,但到目前为止都没有成功。我是不是丢了什么东西?
这个字符串已经被解码了(它是一个Unicode对象)。如果要将其存储在文件中(或发送到哑终端等),则需要对其进行编码。
通常,在使用Unicode时,您应该(在Python2中)在工作流的早期对所有字符串进行解码(您似乎已经这样做了;许多处理internet流量的库已经为您这样做了),然后对Unicode对象执行所有工作,最后在写回它们时,把它们编码成你正在使用的任何编码。
您需要调用
encode
函数而不是decode
函数,因为item
已经解码。像这样:
相关问题 更多 >
编程相关推荐