В последнее время я У нас было много проблем с __ repr __ ()
, format ()
и кодировками. Должны ли выходные данные __ repr __ ()
кодироваться или быть строкой в кодировке Юникод? Существует ли наилучшая кодировка для результата __ 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
Вот некоторые дополнительные проблемы, которые имеют меня беспокоит, и я ищу решение, которое решает их:
sys.stdout.encoding
установлено в UTF-8
, но было бы лучше, если бы работали и другие случаи). sys. stdout.encoding
- это Нет
). __ repr __ ()
в настоящее время имеет много return… .encode ('utf-8')
, и это тяжело. Есть ли что-нибудь более надежное и легкое? return ('<{}>'. Format (repr (x) .decode ('utf-8'))). encode ('utf-8')
, т. е. представление объектов декодируется, помещается в строку форматирования и затем перекодируется. Я хотел бы избежать таких запутанных преобразований. Что бы вы порекомендовали сделать, чтобы написать простые функции __ repr __ ()
, которые хорошо себя ведут по отношению к этим вопросам кодирования?