强大的unicode转换功能,允许打印

时间:2018-03-05 12:57:58

标签: python python-2.7 unicode output python-unicode

我正在比较两个字典列表的等价性。数据来自我无法控制的两个来源。如果任何字段不同,我打印出两个值:

        if event[field_name] == other_event[field_name]:
            print field_name, u'OK,'
        else:
            print field_name, u':', event[field_name], other_event[field_name]

然而,这些数据本质上是国际性的,似乎某些地方已经变成了ascii编码,因此有时我会收到以下错误:

UnicodeEncodeError: 'ascii' codec can't encode character u'\xfc' in position 11: ordinal not in range(128)

转换数据的最佳方法是什么,以便可以在没有错误的情况下打印数据?请注意,数据不是所有文本,例如它可能是布尔或整数,甚至是无,所以需要一个能够以类似的方式处理非字符串的解决方案。

此代码所运行的平台具有Python 2(准确地说是Python 2.7.10),但如果该解决方案也与Python 3兼容,那将是有利的,因为它可能需要在Python 3环境中运行将来

我查了Handle wrongly encoded character in Python unicode string,但我的问题似乎有所不同,因为我可以输出你的' \ xfc'在交互式提示下很好:

>>> print u'Gl\xfcck'
Glück

由于

1 个答案:

答案 0 :(得分:0)

这有效:

import sys  # import sys package, if not already imported
reload(sys)
sys.setdefaultencoding('utf-8')

这是来自Handle wrongly encoded character in Python unicode string但是从接受的答案中得到了几个答案。