Metóda string encode () vráti kódovanú verziu daného reťazca.
Od verzie Python 3.0 sú reťazce uložené ako Unicode, tj. Každý znak v reťazci je reprezentovaný bodom kódu. Každý reťazec je teda iba sledom kódových bodov Unicode.
Pre efektívne uloženie týchto reťazcov sa postupnosť kódových bodov prevedie na množinu bajtov. Tento proces sa nazýva kódovanie .
Existuje rôzne kódovanie, ktoré zaobchádza s reťazcom inak. Populárne kódovania sú utf-8 , ascii atď.
Pomocou reťazcovej encode()
metódy môžete previesť unicodedové reťazce na akékoľvek kódovanie podporované Pythonom. V predvolenom nastavení používa Python kódovanie utf-8 .
Syntax encode()
metódy je:
string.encode (encoding = 'UTF-8', errors = 'strict')
Parametre kódovania reťazca ()
encode()
Metóda predvolene nevyžaduje žiadne parametre.
Vráti utf-8 kódovanú verziu reťazca. V prípade poruchy vyvoláva UnicodeDecodeError
výnimku.
Chce to však dva parametre:
- encoding - typ kódovania, do ktorého musí byť reťazec zakódovaný
- chyby - reakcia pri zlyhaní kódovania. Existuje šesť typov reakcií na chyby
- strict - predvolená odpoveď, ktorá pri zlyhaní vyvolá výnimku UnicodeDecodeError
- ignore - ignoruje nekódovateľný unicode z výsledku
- nahradiť - nahradí nekódovateľný unicode otáznikom ?
- xmlcharrefreplace - vloží odkaz na znak XML namiesto nekódovateľného unicode
- backslashreplace - vloží únikovú sekvenciu uNNNN namiesto nekódovateľného unicode
- namereplace - vloží únikovú sekvenciu N (…) namiesto nekódovateľného unicode
Príklad 1: Zakódujte na predvolené kódovanie 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)
Výkon
Reťazec je: pythön! Kódovaná verzia je: b'pyth xc3 xb6n! '
Príklad 2: Kódovanie s chybovým parametrom
# 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"))
Výkon
Reťazec je: pythön! Kódovaná verzia (s ignorovaním) je: b'pythn! ' Kódovaná verzia (s nahradením) je: b'pyth? N! '
Poznámka: Vyskúšajte tiež rôzne parametre kódovania a chyby.