Search
Close this search box.
Codifique strings em Python com encode()
strings decode

Posts Relacionados:

Aprenda a codificar strings em Python com encode() para armazená-las de forma eficiente e garantir aplicativos capazes de lidar com uma ampla variedade de caracteres.

Receba nossa newsletter

encode() em Python

decode() python

No mundo em que vivemos, um bom aplicativo precisa ser desenvolvido de forma internacionalizada. Ou seja, ele deve lidar com uma ampla variedade de caracteres, idiomas e também incluir uma variedade de símbolos emojis. Para possibilitar essa versatilidade, o Python usa o padrão Unicode para representar caracteres em strings. Isso permite que os programas Python trabalhem com todos os diferentes caracteres possíveis.

Strings armazenadas como Unicode

Um caractere é o menor componente possível de um texto. Evidentemente, dependendo do idioma, os caracteres variam. Desde o Python 3.0, as strings são armazenadas como Unicode. Uma string Unicode é uma sequência de pontos de código. O padrão Unicode descreve como os caracteres são representados por pontos de código, os quais variam de 0 a 0x10FFFF.

Para armazenamento eficiente de strings, a sequência de pontos de código precisa ser representada na memória como um conjunto de unidades de código. As unidades de código são mapeadas para bytes de 8 bits. As regras para traduzir uma string Unicode em uma sequência de bytes são chamadas de codificação de caracteres ou apenas codificação.

Existem várias formas de codificação. Cada uma trata uma string de uma maneira própria. As codificações populares são UTF-8, ASCII, etc. Usando o método encode(), as strings podem ser convertidas em qualquer codificação suportada pelo Python. Por padrão, o Python usa a codificação UTF-8.

encode() em Código

A sintaxe geral para codificar uma string é:

				
					string.encode(encoding, errors)
				
			

Nessa sintaxe, uma string de entrada é codificada (encoding) usando o padrão de codificação especificado. O argumento errors é opcional e define o comportamento a ser seguido se, por acaso, a codificação falhar Se o argumento de codificação for deixado em branco, o padrão UTF-8 será usado como exemplificado abaixo:

				
					# Codificação padrão com UTF-8

string = "pythön"

string_utf = string.encode() 
print('A versão codificada é:', string_utf)
# resultado: A versão codificada é: b'pyth\xc3\xb6n'
				
			

Para especificar a forma de codificação, basta escrever seu nome:

				
					# Codificação padrão com UTF-8 escrita de forma explicita

string = "pythön"
string_utf = string.encode("utf-8")
print('A versão codificada é:', string_utf)
# resultado: A versão codificada é: b'pyth\xc3\xb6n'
				
			

O resultado convertido tem formato de bytes, o que pode ser verificado como mostrado abaixo:

				
					
print(type(string_utf))
# resultado: <class 'bytes'>
				
			

Lidando com erros de codificação

Nem todo caractere pode ser codificado com qualquer codificação. Vários caracteres especiais como acentuação, por exemplo, não podem ser codificados em ASCII. Para lidar com esses casos, o Python oferece vários métodos para ignorar ou substituir caracteres. A seguir, exploraremos alguns desses métodos em código.

strict

strict: opção padrão que gera UnicodeDecodeError em caso de falha. No exemplo abaixo, tentamos codificar uma string usando ASCII, que não codifica caracteres acentuados como o do exemplo. O resultado é um erro UnicodeDecodeError.

				
					string = "pythön"
print(string.encode(encoding="ascii", errors="strict"))
# resultado: UnicodeEncodeError: 'ascii' codec can't encode character '\xf6' in position 4: ordinal not in range(128)
				
			

Veja que especificamos explicitamente o método de erro, mas isso não seria necessário nesse caso, pois strict é a opção default do encode().

ignore

ignore: ignora o Unicode não codificável do resultado.

				
					string = "pythön"
print(string.encode(encoding="ascii", errors="ignore")) # ignora erros
# resultado: b'pythn'
				
			

replace

replace: substitui todos os caracteres Unicode não codificáveis por um ponto de interrogação (?).

				
					string = "pythön"
print(string.encode(encoding="ascii", errors="replace")) # substitui por ?
# resultado: b'pyth?n'
				
			

backslashreplace

backslashreplace: insere uma sequência de escape de barra invertida (\uNNNN) em vez de caracteres Unicode não codificáveis.

				
					string = "pythön"
print(string.encode(encoding="ascii", errors="backslashreplace")) # substitui caractere
# resultado: b'pyth\\xf6n'
				
			

namereplace

namereplace: substitui os caracteres Unicode não codificáveis por seus nomes em latim. Esse método é particularmente útil quando é necessário realizar a reconversão da string armazenada em bytes.
				
					string = "pythön"
print(string.encode(encoding="ascii", errors="namereplace")) # substitui caractere por nome em latim 
# b'pyth\\N{LATIN SMALL LETTER O WITH DIAERESIS}n'
				
			
O namereplace assim como os outros métodos mostrados aqui são apenas alguns exemplos. Para saber mais sobre esses métodos e outras formas de codificação, consulte a documentação oficial do Python.

Encontrou algum erro ou quer fazer uma sugestão? Por favor, entre em contato usando nosso formulário de contatos.

Imagem com IA Generativa – Dia 274

IA generativa img 274

Arte com IA generativa: imagem do dia

Todos os dias, postamos um exemplo de imagem artística gerada com inteligência artificial.

Tutoriais

Postagens Mais Recentes

Outras Postagens Que Podem Interessar

Veja
Mais

Fique em contato

Se inscreva para receber nossa newsletter com novidades.

aprendiz artificial