Печать строки байтов в кодировке UTF-8 - PullRequest
4 голосов
/ 16 января 2012

У меня есть данные в форме: v = "\xc5\x84"

Это байтовое представление кодированного в utf-8 символа "ń".

Как мне напечатать >> ń <<используя переменную v? </p>

Я использую python 2.7.2

В оригинале переменная v содержала строку:

v = "\\xc5\\x84" (двойная обратная косая черта)

против

v = "\xc5\x84" (одиночная обратная косая черта)

, что само по себе является допустимым символом utf-8.

Ответы [ 2 ]

7 голосов
/ 16 января 2012

Edit В моей машине вывод зависит от используемой оболочки / питона, как показано ниже.
Как прокомментировал Клаус, основным актером здесь будет настройка локали в вашей системе.

>>> v = "\xc5\x84"

>>> print v   #in pycrust shell python 2.6
Å„
>>>

>>> print (v) #in idle python 3.2
Å
>>> 

машина имеет следующие настройки:

>>> import locale
>>> locale.getlocale()
('es_ES', 'cp1252')

Независимо от этого параметра, ваш персонаж получает

>>> print v.decode('utf-8')
ń
>>> 
0 голосов
/ 16 января 2012

Хм, тебе не нужно делать ничего особенного ... Это просто print v?

>>> v = "\xc5\x84"
>>> print v
ń
...