Emojis em seus programas e scripts em python

Há algum tempo eu precisei adicionar um 👍 em uma rotina escrita em Python, o que é algo bem simples de se fazer como veremos a seguir, mas eu já vinha resolvendo uma dezena de problemas cabeludos e quando me veio esta tarefa eu já estava esgotado e ela parecia um 😈. Então, caro amigo que chegou aqui através do Google/Bing/Duckduck etc, esta é uma dica que deve te poupar alguns minutos de estresse 😃.

Sem entrar em muitas explicações técnicas e filosóficas, você pode encontrar a lista de emojis disponíveis para uso a partir do site do Consorcio Unicode, ou a partir desta tabela de Unicode, que embora não tenha qualquer vínculo com o site do Consórcio, em alguns aspectos é mais simples de se localizar um símbolo.

Uma vez que você encontre o símbolo desejado, há duas formas de exibí-lo, ou você usa o código hexadecimal (com 8 dígitos) que identifica o caracter, ou você usa o seu nome, também conhecido como “CLDR”.

Digamos que você queira exibir uma chave 🔑 em alguma mensagem do seu programa, procurando no site unicode-table, que sugeri, você encontrará a seguinte página:

Dados do caracter “Key” obtidos em https://unicode-table.com/pt/1F511/

Daqui identificamos o nome Unicode (Key) e também o seu número Unicode, que é o número em hexadecimal “1F511”.

De posse desta informação. Basta você emitir um print, pprint ou o que for o seu comando de exibição de mensagens como segue:

print("\N{Key}")
🔑

ou ainda:

print("\U0001F511")
🔑

Tenha atenção ao fato de que tanto o “\N” quanto o “\U” devem ser obrigatoriamente escritos em MAIÚSCULAS.

O nome CLDR é case-insensitive, então tanto faz se escreve Key, KEY ou key. Todos devem funcionar, mas cuidado com os espaços e hifens, se existirem.

No exemplo abaixo “money bag”, “MONEY BAG” ou “Money Bag” estão OK, mas “moneybag”, “money-bag” etc não existem:

print('\N{money bag}')
💰

Usar os nomes pode ser legal e as vezes bem intuitivo, mas nem todo caracter Unicode/Emoji possui seu nome oficial, ou se tem, por estar constantemente sendo atualizado, pode não funcionar então para evitar surpresas pode ser mais interessante usar o seu número Unicode.

O 🔒 é um bom exemplo disso. Embora seu nome apareça como “locked”, usar o ‘\N{Locked}’, não funcionou nos testes que fiz, então a solução é usar o seu número.

print('\U0001f512')
🔒

Além do “\U” maiúsculo, uma coisa muito importante aqui é que o código hexadecimal deve obrigatoriamente ter 8 caracteres. Na consulta aos sites sugeridos o código do 🔒 aparece como “1F512”. Aqui temos 5 caracteres, logo precisamos completar com “000”, ficando como 0001F512.

Esteja atento porque alguns emojis possuem 4 caracteres no número hexadecimal. Por exemplo a marca ❌, o seu nome é “Cross Mark” e o seu hexadecimal é “2620”. Veja que ao usar o hexadecimal foi necessário completar com “0000” para que ele tivesse os 8 caracteres.

print('\N{Cross Mark}')
❌
print('\U0000274C')
❌

Fora estas duas opções que são bem diretas e objetivas se você quiser há dois pacotes instaláveis pelo Pip que “supostamente” trazem maior simplicidade para exibir os símbolos Unicode e Emojis.

De qualquer forma se interessar confiram o projeto Emoji e o projeto Emojis, cada um com suas peculiaridades e sintaxe porém elas não me agradaram e achei que tornaria as coisas mais complexas.

Deixe um comentário

O seu endereço de e-mail não será publicado.

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.