def encode(self, encoding="utf-8", errors="strict") -> bytes
>>> s = "A message".encode("utf-8") >>> type(s) <class 'bytes'> >>> s b'A message' >>>
Il existe un très grand nombre d'encodages supportés par cette méthode et notamment : ascii, les tables iso-8859 (et notamment iso-8859-1), utf-8, utf-16 (little et big endian), utf-32 (little et big endian)...
Encode the string using the codec registered for encoding. encoding The encoding in which to encode the string. errors The error handling scheme to use for encoding errors. The default is 'strict' meaning that encoding errors raise a UnicodeEncodeError. Other possible values are 'ignore', 'replace' and 'xmlcharrefreplace' as well as any other name registered with codecs.register_error that can handle UnicodeEncodeErrors.
Paramètre | Description |
---|---|
self : str |
La chaîne de caractères courante. Rappel : self est implicitement passée lors de l'appel de la méthode. |
encoding : str = 'utf-8' |
L'encodage de destination souhaité. |
errors : str = 'strict' |
Le mode de gestion d'erreur souhaité. Il peut valoir :
|
La valeur de retour est de type bytes.
Elle correspond à la séquence d'octets résultant de l'encodage.
TypeError :Une exception de ce type sera déclenchée si l'un des deux paramètres n'est pas de type str.
UnicodeError :Une exception de ce type sera déclenchée si un caractère ne peut pas être transformé dans l'encodage de destination et que la stratégie d'erreur est de type
"strict"
.
1 2 3 4 5 6 7 8 9 10 |
#!/usr/bin/python3 message = "Un éléphant très agaçant" print(message.encode(encoding="ascii", errors="backslashreplace")) print(message.encode(encoding="ascii", errors="ignore")) print(message.encode(encoding="ascii", errors="namereplace")) print(message.encode(encoding="ascii", errors="replace")) print(message.encode(encoding="ascii", errors="xmlcharrefreplace")) print(message.encode(encoding="ascii", errors="strict")) |
Et voici les résultats produits par cet exemple.
$> python3 sample.py b'Un \\xe9l\\xe9phant tr\\xe8s aga\\xe7ant' b'Un lphant trs agaant' b'Un \\N{LATIN SMALL LETTER E WITH ACUTE}l\\N{LATIN SMALL LETTER E WITH ACUTE}phant tr\\N{LATIN SMALL LETTER E WITH GRAVE}s aga\\N{LATIN SMALL LETTER C WITH CEDILLA}ant' b'Un ?l?phant tr?s aga?ant' b'Un éléphant très agaçant' Traceback (most recent call last): File "/home/dominique/Test.py", line 8, in <module> print(message.encode(encoding="ascii", errors="strict")) UnicodeEncodeError: 'ascii' codec can't encode character '\xe9' in position 3: ordinal not in range(128) $>
Améliorations / Corrections
Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.
Emplacement :
Description des améliorations :