Python String encode() decode()

A função encode() de String Python

A função encode() de string Python é usada para codificar a string usando a codificação fornecida. Esta função retorna o objeto bytes. Se não fornecermos uma codificação, a codificação “utf-8” é usada por padrão.

A função decode() de Bytes Python

A função decode() de bytes Python é usada para converter bytes em objeto de string. Ambas essas funções nos permitem especificar o esquema de tratamento de erros a ser usado para erros de codificação/decodificação. O padrão é ‘strict’, o que significa que erros de codificação levantam um UnicodeEncodeError. Alguns outros valores possíveis são ‘ignore’, ‘replace’ e ‘xmlcharrefreplace’. Vamos dar uma olhada em um exemplo simples das funções encode() e decode() de string 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)

Resultado:

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

O exemplo acima não demonstra claramente o uso de codificação. Vamos ver outro exemplo onde iremos obter entradas do usuário e então codificá-las. Teremos alguns caracteres especiais na string de entrada inserida pelo usuário.

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)

Resultado:

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

Você pode conferir o script completo em Python e mais exemplos de Python em nosso Repositório do GitHub.

Referência: Documentação da API str.encode(), Documentação da API bytes.decode()

Source:
https://www.digitalocean.com/community/tutorials/python-string-encode-decode