最近,我在 、 和 编码方面遇到了很多__repr__()
麻烦format()
。 的输出应该__repr__()
被编码还是 unicode 字符串?__repr__()
Python 中的结果是否有最佳编码?我要输出的确实有非 ASCII 字符。
我使用 Python 2.x,并且想编写可以轻松适应 Python 3 的代码。因此,该程序使用
# -*- coding: utf-8 -*-
from __future__ import unicode_literals, print_function # The 'Hello' literal represents a Unicode object
以下是一些一直困扰我的其他问题,我正在寻找解决这些问题的解决方案:
- 打印到 UTF-8 终端应该可以工作(我已
sys.stdout.encoding
设置为UTF-8
,但最好是其他情况也可以)。 - 将输出通过管道传输到文件(以 UTF-8 编码)应该可以工作(在这种情况下
sys.stdout.encoding
是 isNone
)。 - 我的许多
__repr__()
功能的代码目前有很多return ….encode('utf-8')
,而且很重。有什么坚固而轻便的东西吗? - 在某些情况下,我什至有丑陋的野兽,例如
return ('<{}>'.format(repr(x).decode('utf-8'))).encode('utf-8')
,对象的表示被解码,放入格式化字符串,然后重新编码。我想避免这种复杂的转换。
为了编写简单的__repr__()
函数,在这些编码问题上表现得很好,你会建议做什么?