2015-09-11 3 views
-2

У меня есть эта строкаКак преобразовать строку, содержащую escape-последовательности unicode, в строку unicode, содержащую эти символы?

a = "ID\u65e0\u6548 99999" 

>>> print u"ID\u65e0\u6548 99999" 
ID无效 99999 
>>> print unicode("ID\u65e0\u6548 99999") 
ID\u65e0\u6548 99999 

Теперь я хочу, чтобы распечатать в качестве первого выхода ID无效 99999 без использования u префикса. Есть ли решение? Благодаря!!

Поскольку я использую Python2.7, и мне нужно использовать это в моем проекте, нет возможности использовать python3.

+0

«Исправить» является вместо этого использовать Python 3. Нет рациональной причины, чтобы попытаться избежать префикса 'u' для строк Unicode в Python 2; вы должны объяснить, почему это неприемлемо (или, возможно, просто удалить этот вопрос, поскольку он, вероятно, будет собирать downvotes, как сейчас). – tripleee

+1

возможный дубликат [Подавить u'prefix, указывающий unicode 'в строках python] (http://stackoverflow.com/questions/761361/suppress-the-uprefix-indicating-unicode-in-python-strings) – Holt

+1

@tripleee: Я не понимаю, как Python 3 имеет значение здесь. Вы можете использовать 'from __future__ import unicode_literals', если хотите интерпретировать' 'abc' 'как строку Unicode на Python 2, и вы не можете писать' u 'abc "' явно для какой-то странной причины. – jfs

ответ

0

Вы можете decode строки с unicode_escape кодеком, чтобы получить строку Юникода, которая содержит тот Юникод ускользает как фактические символы:

>>> print "ID\u65e0\u6548 99999".decode('unicode_escape') 
ID无效 99999 

(Протестирован под Python 2.7.3)

+0

Это работает! Благодаря! Не могли бы вы объяснить, почему? –

Смежные вопросы