Конвертировать код символа Unicode в код на Python - PullRequest
0 голосов
/ 11 мая 2018

У меня есть список кодов символов Unicode, которые мне нужно преобразовать в символы на python 2.7.

U+0021
U+0022
U+0023
.......
U+0024

Как это сделать?

Ответы [ 3 ]

0 голосов
/ 11 мая 2018

Это регулярное выражение заменит все U+nnnn последовательности соответствующими символами Юникода:

import re

s = u'''\
U+0021
U+0022
U+0023
.......
U+0024
'''

s = re.sub(ur'U\+([0-9A-F]{4})',lambda m: unichr(int(m.group(1),16)),s)

print(s)

Вывод:

!
"
#
.......
$

Объяснение:

  • unichr дает символ кодовой точки, например, unichr(0x21) == u'!'.
  • int('0021',16) преобразует шестнадцатеричную строку в целое число.
  • lambda(m): expression - анонимная функция, которая получает соответствие регулярному выражению.
    Определяет функцию, эквивалентную def func(m): return expression, но встроенную.
  • re.sub соответствует шаблону и отправляет каждое совпадение в функцию, которая возвращает замену.В этом случае шаблон имеет вид U+hhhh, где h - шестнадцатеричная цифра, а функция замены преобразует строку шестнадцатеричных цифр в символ Unicode.
0 голосов
/ 11 мая 2018

Код, написанный ниже, возьмет каждую строку Unicode и преобразует в строку.

for I in list:
    print(I.encode('ascii', 'ignore'))
0 голосов
/ 11 мая 2018
a = 'U+aaa'
a.encode('ascii','ignore')
'aaa'

Это преобразует Unicode в Ascii, что, я думаю, то, что вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...