Python принудительно запускает Unicode escape - PullRequest
1 голос
/ 09 августа 2011

как мне принудительно использовать экранирование юникода в python?

У меня есть строка юникода u'aä' или u'a\u00e4', и я хочу, чтобы она была представлена ​​как a\u00e4.Предлагаемое решение здесь не работает для меня:

>>> repr(u'a\u00e4')
"u'a\\xe4'"

Насколько я понимаю, следующая попытка должна быть правильным решением (но это не так):

>>> u'a\u00e4'.encode('unicode-escape')
'a\\xe4'

Я пробовал это с python 2.6 и 2.7 на OS X и с 2.6 на Debian Squeeze.

Спасибо за ваше время.

1 Ответ

3 голосов
/ 09 августа 2011

Символы Unicode ниже 256 всегда кодируются с \x в их repr() значении, так как это занимает меньше всего места.

Тем не менее, они являются Unicode из-за u' в начале. Это просто вопрос представительства.

Если вы все же хотите, вы можете сделать

print repr(u'a\u00e4').replace('\\x','\\u00')

.

...