Разделенная строка в кодировке UTF-8, полученная от unichr - PullRequest
0 голосов
/ 27 ноября 2009

У меня есть набор номеров Unicode, мне нужно преобразовать их в UTF-8 и распечатать результат, чтобы разделить их на шестнадцатеричные значения.

Например: Unicode 0x80 должен быть преобразован в UTF-8 и напечатан как (0xc2,0x80)

Я пытался подписаться

str(unichr(0x80).encode('utf-8')).split(r'\x')[0]

Но он разделяется на ['c2', '80']. Но это дает мне ['\ xc2 \ x80'].

Мне это нужно для генерации кода.

Ответы [ 3 ]

2 голосов
/ 27 ноября 2009

Чтобы создать список шестнадцатеричных значений символов в строке в кодировке UTF8, используйте следующее:

>>> [hex(ord(x)) for x in unichr(0x80).encode('utf-8')]
['0xc2', '0x80']
2 голосов
/ 27 ноября 2009

Ты так хочешь? может быть сделано со списком пониманий.

>>> ["%x"%ord(x) for x in unichr(0x80).encode('utf-8')]
['c2', '80']
1 голос
/ 27 ноября 2009

Вы пытаетесь разделить на \x, но \x не существует в строке. \xc2\x80 - это просто escape-коды (например, \n для новой строки) на вашем экране, я думаю, что вы хотите это:

print hex(ord(unichr(0x80).encode('utf-8')[0]))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...