Ctrl+L удаляет текущую выбранную строку. Это экономит время (если используется ответственно, конечно!!!)
В Python 3.x, str
- это класс для текста Unicode, а байтов
для содержания октетов .
Если под «октетами» вы действительно имеете в виду строки в форме '0xc5' (а не '\ xc5'), вы можете преобразовать их в байты
следующим образом:
>>> bytes(int(x,0) for x in ['0xc5', '0x81'])
b'\xc5\x81'
Затем вы можете преобразовать в str
(например: Unicode) с помощью конструктора str
...
>>> str(b'\xc5\x81', 'utf-8')
'Ł'
... или путем вызова .decode ('utf-8')
на bytes
объект:
>>> b'\xc5\x81'.decode('utf-8')
'Ł'
>>> hex(ord('Ł'))
'0x141'
До 3.x тип str
был байтовым массивом, а unicode
был для текста Unicode.
Опять же, если под «октетами» вы действительно имеете в виду строки в форме '0xc5' (а не '\ xc5'), вы можете преобразовать их следующим образом:
>>> ''.join(chr(int(x,0)) for x in ['0xc5', '0x81'])
'\xc5\x81'
Затем вы можете преобразовать в юникод
, используя конструктор ...
>>> unicode('\xc5\x81', 'utf-8')
u'\u0141'
... или вызвав .decode ('utf-8')
на str
:
>>> '\xc5\x81'.decode('utf-8')
u'\u0141'
В прекрасном 3.x, где все str
- это Unicode, а байты
- это то, что раньше было str
:
>>> s = str(bytes([0xc5, 0x81]), 'utf-8')
>>> s
'Ł'
>>> ord(s)
321
>>> hex(ord(s))
'0x141'
Это то, о чем вы просили.
l = ['0xc5','0x81']
s = ''.join([chr(int(c, 16)) for c in l]).decode('utf8')
s
>>> u'\u0141'
>>> "".join((chr(int(x,16)) for x in ['0xc5','0x81'])).decode("utf8")
u'\u0141'