Ответ 1
Изменить. Начиная с Python 3.3, литерал u''
работает снова, поэтому функция u()
не нужна.
Лучшим вариантом является создание метода, который создает объекты unicode из строковых объектов в Python 2, но оставляет только строковые объекты в Python 3 (так как они уже являются unicode).
import sys
if sys.version < '3':
import codecs
def u(x):
return codecs.unicode_escape_decode(x)[0]
else:
def u(x):
return x
Затем вы будете использовать его так:
>>> print(u('\u00dcnic\u00f6de'))
Ünicöde
>>> print(u('\xdcnic\N{Latin Small Letter O with diaeresis}de'))
Ünicöde