【问题标题】:Cyrillic encoding python 2.7 array西里尔编码 python 2.7 数组
【发布时间】:2020-05-17 00:49:57
【问题描述】:

到目前为止我的代码:

data = [(u'Rest', u'русский', u'фввв', u'vc'), (u'Rest', u'русский', u'фввв ', u'vc')]
print(data)

结果:

[(u'Rest', u'\u0440\u0443\u0441\u0441\u043a\u0438\u0439', u'\u0444\u0432\u0432\u0432', u'vc'), (u'Rest', u'\u0440\u0443\u0441\u0441\u043a\u0438\u0439', u'\u0444\u0432\u0432\u0432 ', u'vc')]

我希望输出显示西里尔字符,如下所示:

[('Rest', 'русский', 'фввв', 'vc'), ('Rest', 'русский', 'фввв ', 'vc')]

【问题讨论】:

    标签: python list python-2.7 unicode encoding


    【解决方案1】:

    这是因为当我们打印出一个列表或元组时,列表中元素的表示是由元素的__repr__ 函数定义的,而不是它的__str__ 函数。要解决此问题,您可以使用以下代码对字符串进行编码,然后对列表的repr() 进行解码。

    代码:

    # -*- coding: utf-8 -*-
    import sys
    data = [(u'Rest', u'русский', u'фввв', u'vc'), (u'Rest', u'русский', u'фввв ', u'vc')]
    print repr([tuple(x.encode(sys.stdout.encoding) for x in sl) for sl in data]).decode('string-escape')
    

    输出:

    [('Rest', 'русский', 'фввв', 'vc'), ('Rest', 'русский', 'фввв ', 'vc')]
    

    【讨论】:

      猜你喜欢
      • 2017-05-30
      • 1970-01-01
      • 2013-10-29
      • 1970-01-01
      • 2016-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-03
      相关资源
      最近更新 更多