Кодування рядка Python ()

Метод string encode () повертає закодовану версію заданого рядка.

Починаючи з Python 3.0, рядки зберігаються як Unicode, тобто кожен символ у рядку представлений кодовою точкою. Отже, кожен рядок - це просто послідовність точок коду Unicode.

Для ефективного зберігання цих рядків послідовність точок коду перетворюється у набір байтів. Процес відомий як кодування .

Існують різні кодування, які по-різному трактують рядок. Популярні кодування utf-8 , ascii тощо.

Використовуючи encode()метод string , ви можете перетворити unicoded рядки в будь-які кодування, що підтримуються Python. За замовчуванням Python використовує кодування utf-8 .

Синтаксис encode()методу:

 string.encode (кодування = 'UTF-8', помилки = 'строге')

Параметри кодування рядка ()

За замовчуванням encode()метод не вимагає жодних параметрів.

Він повертає кодовану версію рядка utf-8. У разі невдачі, виникає UnicodeDecodeErrorвиняток.

Однак для цього потрібні два параметри:

  • кодування - тип кодування, до якого має кодуватися рядок
  • помилки - відповідь при коді не вдається. Існує шість типів реакції на помилки
    • строгий - відповідь за замовчуванням, що викликає виняток UnicodeDecodeError у разі відмови
    • ігнорувати - ігнорує незрозумілий юнікод із результату
    • replace - замінює uncodible unicode на знак питання ?
    • xmlcharrefreplace - вставляє посилання на символи XML замість некодуваного Unicode
    • backslashreplace - вставляє вхідну послідовність uNNNN замість uncodible unicode
    • namereplace - вставляє вхідну послідовність N (…) замість некодируемого Unicode

Приклад 1: Кодування до кодування Utf-8 за замовчуванням

 # unicode string string = 'pythön!' # print string print('The string is:', string) # default encoding to utf-8 string_utf = string.encode() # print result print('The encoded version is:', string_utf) 

Вихідні дані

Рядок: pythön! Зашифрована версія: b'pyth xc3 xb6n! '

Приклад 2: Кодування з параметром помилки

 # unicode string string = 'pythön!' # print string print('The string is:', string) # ignore error print('The encoded version (with ignore) is:', string.encode("ascii", "ignore")) # replace error print('The encoded version (with replace) is:', string.encode("ascii", "replace")) 

Вихідні дані

Рядок: pythön! Зашифрована версія (з ігноруванням): b'pythn! ' Зашифрована версія (із заміною): b'pyth? N! '

Примітка: Спробуйте також різні параметри кодування та помилки.

Цікаві статті...