Recherche de site Web

Méthodes encode() et decode() dans Python


Méthode encode() de chaîne en Python

La fonction encode() de la chaîne Python est utilisée pour encoder la chaîne en utilisant l'encodage fourni. Cette fonction retourne un objet bytes. Si nous ne fournissons pas d'encodage, l'encodage « utf-8 » est utilisé par défaut.

Python Bytes decode()

La fonction decode() des bytes en Python est utilisée pour convertir des bytes en objet string. Ces deux fonctions nous permettent de spécifier le schéma de gestion des erreurs à utiliser pour les erreurs d'encodage/décodage. La valeur par défaut est 'strict', ce qui signifie que les erreurs d'encodage entraînent une UnicodeEncodeError. Parmi d'autres valeurs possibles, on trouve 'ignore', 'replace' et 'xmlcharrefreplace'. Examinons un exemple simple des fonctions encode() et decode() en Python.

str_original = 'Hello'

bytes_encoded = str_original.encode(encoding='utf-8')
print(type(bytes_encoded))

str_decoded = bytes_encoded.decode()
print(type(str_decoded))

print('Encoded bytes =', bytes_encoded)
print('Decoded String =', str_decoded)
print('str_original equals str_decoded =', str_original == str_decoded)

Sortie :

<class 'bytes'>
<class 'str'>
Encoded bytes = b'Hello'
Decoded String = Hello
str_original equals str_decoded = True

L'exemple ci-dessus ne démontre pas clairement l'utilisation de l'encodage. Regardons un autre exemple où nous allons obtenir des entrées de l'utilisateur, puis les encoder. Nous aurons quelques caractères spéciaux dans la chaîne d'entrée saisie par l'utilisateur.

str_original = input('Please enter string data:\n')

bytes_encoded = str_original.encode()

str_decoded = bytes_encoded.decode()

print('Encoded bytes =', bytes_encoded)
print('Decoded String =', str_decoded)
print('str_original equals str_decoded =', str_original == str_decoded)

Sortie :

Please enter string data:
aåb∫cçd∂e´´´ƒg©1¡
Encoded bytes = b'a\xc3\xa5b\xe2\x88\xabc\xc3\xa7d\xe2\x88\x82e\xc2\xb4\xc2\xb4\xc2\xb4\xc6\x92g\xc2\xa91\xc2\xa1'
Decoded String = aåb∫cçd∂e´´´ƒg©1¡
str_original equals str_decoded = True

Vous pouvez consulter le script Python complet et d'autres exemples de Python sur notre dépôt GitHub.

Référence : documentation de l'API str.encode(), documentation de l'API bytes.decode()