Kodowanie ciągów w języku Python ()

Metoda string encode () zwraca zakodowaną wersję podanego ciągu.

Od Pythona 3.0 łańcuchy są przechowywane jako Unicode, tj. Każdy znak w ciągu jest reprezentowany przez punkt kodowy. Tak więc każdy ciąg jest po prostu sekwencją punktów kodowych Unicode.

W celu wydajnego przechowywania tych ciągów sekwencja punktów kodowych jest konwertowana na zestaw bajtów. Proces ten nazywany jest kodowaniem .

Istnieją różne kodowania, które traktują ciąg w inny sposób. Popularne kodowania to utf-8 , ascii itp.

Używając encode()metody string , możesz konwertować ciągi znaków unicoded na dowolne kodowanie obsługiwane przez Pythona. Domyślnie Python używa kodowania utf-8 .

Składnia encode()metody to:

 string.encode (encoding = 'UTF-8', errors = 'ścisłe')

Parametry encode () String

Domyślnie encode()metoda nie wymaga żadnych parametrów.

Zwraca wersję łańcucha zakodowaną w formacie utf-8. W przypadku niepowodzenia zgłasza UnicodeDecodeErrorwyjątek.

Jednak wymaga dwóch parametrów:

  • encoding - typ kodowania, do którego należy zakodować ciąg
  • błędy - odpowiedź w przypadku niepowodzenia kodowania. Istnieje sześć typów odpowiedzi na błędy
    • ścisłe - domyślna odpowiedź, która w przypadku niepowodzenia zgłasza wyjątek UnicodeDecodeError
    • ignore - ignoruje niekodowalny unicode z wyniku
    • replace - zamienia niekodowalny unicode na znak zapytania ?
    • xmlcharrefreplace - wstawia odwołanie do znaku XML zamiast niekodowalnego Unicode
    • backslashreplace - wstawia sekwencję ucieczki uNNNN zamiast niekodowalnego unicode
    • namereplace - wstawia sekwencję ucieczki N (…) zamiast niekodowanego Unicode

Przykład 1: Koduj do domyślnego kodowania 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) 

Wynik

Ciąg to: pythön! Wersja zakodowana to: b'pyth xc3 xb6n! '

Przykład 2: Kodowanie z parametrem błędu

 # 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")) 

Wynik

Ciąg to: pythön! Wersja zakodowana (z ignorowaniem) to: b'pythn! ' Wersja zakodowana (z zastąpieniem) to: b'pyth? N! '

Uwaga: wypróbuj także inne parametry kodowania i błędów.

Interesujące artykuły...