Как эффективно преобразовать между кодовыми точками Unicode и литералами UTF-8 в python? - PullRequest
1 голос
/ 06 мая 2020

У меня есть большая таблица кодовых точек Юникода: http://www.unicode.org/Public/UCD/latest/ucd/UnicodeData.txt

которые я хотел бы отобразить, для этого: я понимаю, что кодовая точка должна быть преобразован в буквальную строку utf-8, а затем эта буквальная строка (рассматриваемая как объект байтов) может быть преобразована в символ, который я хочу отобразить.

В качестве конкретного примера с учетом шестнадцатеричного числа:

"00A1"

Мне нужно преобразовать его в выражение:

"\ xc2 \ xa1"

А потом оттуда легко в python чтобы преобразовать его в символ «¡».

Моя проблема в том, как преобразовать из «00A1» в «\ xc2 \ xa1» и наоборот [в идеале с использованием встроенных методов или популярных сторонних библиотек]

Похоже, что нет встроенного метода для поддержки этого.

Моя работа на данный момент:

Методы string.encode позволяют нам преобразовывать «¡» в «\ xc2 \ xa1»

Метод bytestring.decode позволяет нам для преобразования «\ xc2 \ xa1» в «¡»

Но доступ к этому шестнадцатеричному индексу представления символа (преобразование туда и обратно из 00A1), к сожалению, для меня все еще недоступен.

1 Ответ

4 голосов
/ 06 мая 2020

На самом деле я не думаю, что вам здесь нужно go через utf-8. int даст вам код

>>> int('00A1', 16)
161

И тогда это будет просто chr

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