Python中列表对象的Unicode错误

时间:2016-05-15 18:59:31

标签: python list unicode

我在Python中遇到一些Unicode错误,试图打印一些字符串,我使用以下帖子中给出的答案的第二个要点中的以下代码解决了大部分错误: UnicodeEncodeError: 'charmap' codec can't encode - character maps to <undefined>, print function

# -*- coding: utf-8 -*-
import sys

print sys.stdout.encoding
print u"Stöcker".encode(sys.stdout.encoding, errors='replace')
print u"Стоескер".encode(sys.stdout.encoding, errors='replace')

但是,我在列表对象上尝试使用它时出错。它给了我一个错误,列表没有属性&#34;编码&#34;。

有人有一个干净的解决方案来解决这个问题吗?

感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

当您打印列表时,执行打印的例程将使用非字符串对象并调用其__str__方法将它们转换为字符串。但是您尝试调用非字符串对象的decode方法,而非字符串对象没有decode方法。

解决此问题的一种方法是将unicode函数应用于列表,然后调用结果字符串的decode方法。

print unicode([u"Stöcker", u"Стоескер"]).encode(
               sys.stdout.encoding, errors='replace')

这适用于大多数对象。