Notícias
Novos modelos de LLM já estão disponíveis no painel de controle da Serverspace
Serverspace Black Friday
JT
outubro 17, 2023
Atualizado janeiro 31, 2025

Como trabalhar com Unicode em Python?

Python

O que é isso?

O Unicode serve como um padrão de codificação de caracteres que abrange praticamente todos os idiomas escritos em todo o mundo e é atualmente o padrão dominante para a Internet.

Em sua essência, o Unicode é uma abordagem sistemática para representar o texto de forma linear. A cada caractere Unicode é atribuído um código exclusivo, um número inteiro que varia de 0 a 1.114.111. Esses códigos desempenham um papel fundamental na representação de caracteres em sistemas de computador, incluindo sistemas operacionais, navegadores da Web e vários aplicativos.

O Unicode apresenta várias vantagens quando comparado a sistemas alternativos de codificação de caracteres, como ASCII e ISO 8859-1. Ele oferece suporte abrangente para uma vasta gama de caracteres, cobrindo todas as línguas escritas do mundo. Além disso, o suporte do Unicode para códigos multibyte permite a representação de caracteres complexos, como hieróglifos.

Mas é preciso ressaltar que o Unicode não é um algoritmo de código, mas sim um conjunto de pontos de código, como um banco de dados de indicadores. Portanto, existem algoritmos de código que usam essa base, por exemplo: UTF-8, UTF-16, UTF-32, UCA, BIDI, etc.

Como usá-lo?

Python já suporta Unicode e tem no modelo padrão o algoritmo UTF-8/16/32, devemos usar várias instruções .encode e .decode para converter dados:

print("That’s data!".encode("utf-16"))
#Output b'xffxfeTx00hx00ax00tx00 x00ix00sx00 x00dx00ax00tx00ax00!x00'

Na saída, podemos ver um conjunto de dados separados por um sinal de barra e x é um sistema de codificação de 16 bits. Também podemos decodificar em letras latinas com o comando:

print(b'xffxfeTx00hx00ax00tx00 x00ix00sx00 x00dx00ax00tx00ax00!x00'.decode("utf-16"))
#Output 'That is data!'

Como destacamos anteriormente, o Unicode, portanto o UTF-8, é compatível com letras árabes, hieróglifos e a maior parte da linguagem escrita:

print("العربية".encode("utf-16"))
#Output b"xffxfe'x06Dx069x061x06(x06Jx06)x06"

E da mesma forma que descrevemos acima - decodificar:

print(b"xffxfe'x06Dx069x061x06(x06Jx06)x06".decode("utf-16"))
#Output 'العربية'

Além disso, você pode não identificar o algoritmo para converter o valor, por exemplo:

print("Hi, my name is Jhon!".encode())
#Output b'Hi, my name is Jhon!'

E decodificar da mesma forma:

print(b'Hi, my name is Jhon!'.decode())
#Output 'Hi, my name is Jhon!'

Há um método que permite exibir o valor dos dados convertidos para o sistema de cálculo decimal:

print(list(b"xffxfe'x06Dx069x061x06(x06Jx06)x06"))
#Output [255, 254, 39, 6, 68, 6, 57, 6, 49, 6, 40, 6, 74, 6, 41, 6]

A lista pode ser útil em diferentes cenários para seu programa e utilitário. No entanto, nem todos os algoritmos usam Unicode da mesma forma. Se tentarmos representar nossa mensagem de texto "Here's my data!" (Aqui estão meus dados!), obteremos várias respostas:

print("Here’s my data!".encode("utf-16"))
#Output b'xffxfeHx00ex00rx00ex00x19 sx00 x00mx00yx00 x00dx00ax00tx00ax00!x00'

E se tentarmos decodificar para utf-8 ou utf-32, veremos:

print(b'xffxfeHx00ex00rx00ex00x19 sx00 x00mx00yx00 x00dx00ax00tx00ax00!x00'.decode("utf-8"))
#Output UnicodeDecodeError: 'utf-8' codec can't decode
print(b'xffxfeHx00ex00rx00ex00x19 sx00 x00mx00yx00 x00dx00ax00tx00ax00!x00'.decode("utf-32"))
#Output UnicodeDecodeError: 'utf-32' codec can't decode

Nos dois casos, recebemos mensagens sobre a impossibilidade de decodificar os dados dessa forma!

Conclusão

O Unicode é um padrão fundamental de codificação de caracteres que abrange a vasta gama de idiomas escritos em todo o mundo, tornando-o o padrão dominante para a Internet. Essa abordagem sistemática atribui um código exclusivo a cada caractere Unicode, permitindo uma representação perfeita em vários sistemas e aplicativos de computador.

Avaliação:
5 fora de 5
Аverage rating : 5
Avaliado por: 2
CEP 01311-930 São Paulo Avenida Paulista, nº 1765, 7º andar, Cj. 72, CV 10172, Bela Vista
+ 55 11 5118-1047
ITGLOBAL.COM BR LTDA

Você também pode gostar...

Usamos cookies para melhorar sua experiência no Serverspace. Ao continuar a navegar em nosso site, você concorda com o Uso de Cookies e com a Política de Privacidade.