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 UnicodeDecodeError
wyją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.