UNICODE

Alfabeto

Sabemos que os computadores entendem binários e na computação atual interpretam 0 ou 1. Quando temos que representar um número podemos converter esse número da escala decimal para binária, utilizando cálculo matemático. Porém isso não ocorre com letras pois são imagens/símbolos que foram criados pela humanidade para se comunicar, cada país/localidade criou suas letras seguindo suas intuições e cultura.

Com isso surge a necessidade da criação de um padrão, alguem precisava dizer que a LETRA X era igual a 0100100 em binário(isso foi um exemplo e não representa o X)

Então na década de 60 surge o padrão ASCII que mapeava as letras latinas básicas e alguns caracteres especiais mas era limitado a 127 símbolos mapeados, funcionava bem quando utilizado para o idioma inglês

ASCII vs UNICODE

Então depois de algumas evoluções do ASCII foi criado um padrão mais abrangente que ainda era compatível com o ASCII e que adicionava os idiomas que faltavam, letras russas, chinesas, japonesas, coreanas, árabe e futuramente emojis.

Esse padrão UNICODE é uma tabela que representa os símbolos através de um código específico chamado de code points, são valores que começam com U + numero hexadecimal por exemplo a letra A maiúscula é U+0041 que é igual ao numero '65' que é igual a 01000001 em binário

Exemplo de tabela UNICODE

Letra Unicode Decimal Hexadecimal Binário
a U+0061 97 0x61 01100001
b U+0062 98 0x62 01100010
c U+0063 99 0x63 01100011
w U+0077 119 0x77 01110111

Curiosidade

Alguem tem que cuidar da lista do que é reconhecido como emojis ou letras oficiais do padrão UNICODE e quem faz isso é a UNICODE CONSORTIUM quando um emoji novo é aprovado todos os sistemas devem ser atualizados para que o mundo todo e seus diferentes sistemas operacionais possam enxergar aquele desenho. Então quando você fica segurança para não atualizar o seu smartphone, pode ser que no meio dela estejam novos emojis aprovado pela unicode consortium, mas você nem utiliza todos né, será que faz diferença ?

https://www.unicode.org/consortium/consort.html