Метод 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! '
Примітка: Спробуйте також різні параметри кодування та помилки.