Строка Python для unicode

Возможный дубликат:
Как обрабатывать строку ASCII как unicode и unescape экранированные символы в ней в python?
Как преобразовать escape-последовательности unicode в unicode символы в строке python

У меня есть строка, которая содержит символы Unicode, например, \u2026 и т. Д. Как-то она не получена мне как unicode , но получена как str . Как преобразовать его обратно в unicode?

 >>> a="Hello\u2026" >>> b=u"Hello\u2026" >>> print a Hello\u2026 >>> print b Hello… >>> print unicode(a) Hello\u2026 >>> 

Таким образом, однозначный unicode(a) не является ответом. Тогда что?

  • Преобразование исходной строки байтов в Юникод, не зная кодовой страницы заранее
  • Установить кодировку в сценариях Python 3 CGI
  • Как я могу отображать собственные акценты для языков в консоли в окнах?
  • Как найти китайский или японский символ в строке в Python?
  • Как я могу сравнить тип unicode с строкой в ​​python?
  • Неподдерживаемые символы ввода
  • Python urllib.request и вопрос об декодировании utf8
  • Как преобразовать символы Unicode с акцентом в чистый ascii без акцентов?
  • 3 Solutions collect form web for “Строка Python для unicode”

    Unicode escapes работает только в строках unicode, поэтому это

      a="\u2026" 

    на самом деле представляет собой строку из 6 символов: '\', 'u', '2', '0', '2', '6'.

    Чтобы сделать unicode из этого, используйте decode('unicode-escape') :

     a="\u2026" print repr(a) print repr(a.decode('unicode-escape')) ## '\\u2026' ## u'\u2026' 

    Декодируйте его с помощью кодека unicode-escape :

     >>> a="Hello\u2026" >>> a.decode('unicode-escape') u'Hello\u2026' >>> print _ Hello… 

    Это связано с тем, что для строки, отличной от юникода, \u2026 не распознается, а рассматривается как буквальная серия символов (для более четкого 'Hello\\u2026' ). Вам нужно декодировать экраны, и кодек с unicode-escape может сделать это для вас.

    Обратите внимание, что вы можете получить unicode чтобы распознать его таким же образом, указав аргумент кодека:

     >>> unicode(a, 'unicode-escape') u'Hello\u2026' 

    Но a.decode() более приятный.

     >>> a="Hello\u2026" >>> print a.decode('unicode-escape') Hello… 
    Python - лучший язык программирования в мире.