Как преобразовать Python Unicode в строку

Строки Unicode могут быть закодированы в виде простых строк в любой кодировке, которую вы выберете. Символ Python Unicode — это абстрактный объект, достаточно большой для хранения символа, аналогичный длинным целым числам Python. Если строка содержит только символы ASCII, используйте функцию str() для преобразования ее в строку.

Вывод:

Если у вас есть строка Unicode, и вам нужно записать ее в файл или другую сериализованную форму, вы должны сначала закодировать ее в определенное представление, которое можно сохранить.

Существует множество распространенных кодировок Unicode, таких как UTF-16 (которая использует два байта для большинства символов Unicode) или UTF-8(которая использует 1-4 байта/кодовую точку в зависимости от символа) и т. д.

Чтобы преобразовать эту строку в определенную кодировку, вы можете использовать следующий код.

Вывод:

Итак, мы получили результат в байтах. Чтобы преобразовать байты в строку, используйте функцию decode().

Вывод:

Вы можете видеть, что мы получили исходные строки.

Как преобразовать Python Unicode в строку

Чтобы преобразовать Unicode Python в строку, используйте функцию unicodedata.normalize(). Стандарт Unicode определяет различные формы нормализации строки Unicode на основе канонической эквивалентности и эквивалентности совместимости.

Для каждого символа есть две нормальные формы:

  1. normal form C
  2. normal form D

Нормальная форма D (NFD) также известна как каноническая декомпозиция и переводит каждый символ в его декомпозированную форму. Нормальная форма C (NFC) сначала применяет каноническую декомпозицию, а затем снова составляет предварительно объединенные символы.

Синтаксис

Нормальная форма KD(NFKD) применяет декомпозицию совместимости, например, заменяет все символы совместимости их эквивалентами. Нормальная форма KC(NFKC) сначала применяет декомпозицию совместимости, а затем каноническую композицию.

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

Пример

Вывод:

Вы можете видеть, что на выходе мы получили закодированную строку байтов, и теперь мы можем декодировать ее, чтобы получить строку Python, используя функцию string decode().

Вывод:

Как видите, теперь мы получили на выходе простую строку. Итак, мы полностью преобразовали униформу в строку в Python.

Оцените статью

Автор статей и разработчик, делюсь знаниями.

Программирование на Python