Conteúdo
O que é Unicode?
Unicode (Unicode) é um padrão de codificação que abrange símbolos de praticamente todas as línguas do mundo. Este padrão permite que os computadores processem informações textuais e as exibam corretamente na tela. Todas as informações em um computador são armazenadas e processadas em formato binário, ou seja, na forma de sequências de zeros e uns. Para traduzir essas sequências binárias em símbolos compreensíveis para os usuários, foram desenvolvidas codificações especiais que definem as regras pelas quais cada símbolo — seja uma letra, um número ou até mesmo uma nota musical — recebe um código numérico exclusivo.
Para que um computador possa exibir corretamente os símbolos na tela, ele precisa saber a que código binário eles correspondem. Por exemplo, a sequência binária 0100 0001 corresponde à letra latina A. No entanto, o número de códigos possíveis é limitado, portanto, o Unicode funciona de maneira diferente. A cada símbolo é atribuído um ponto de código — um valor numérico exclusivo que tem o formato U+XXXX. O prefixo U+ indica que se trata de Unicode, e XXXX representa o valor hexadecimal do símbolo.
No sistema hexadecimal, utilizam-se 16 símbolos, incluindo os dígitos de 0 a 9 e as letras de A a F, que representam os números de 10 a 15. Por exemplo, à letra inglesa A corresponde o ponto de código U+0041, e à palavra HELLO — os pontos de código U+0048, U+0065, U+006C, U+006C, U+006F. Cada ponto de código é então traduzido para um formato binário compreensível pelo computador e armazenado em sua memória. É interessante notar que, com o Unicode, também estão codificados os emojis.
Para que serve o Unicode?
Inicialmente, existiam codificações separadas para os símbolos de cada língua, muitas das quais eram incompatíveis entre si. Isso levou ao surgimento do problema das “krakozyabras”, quando, em vez de um texto normal, apareciam símbolos estranhos ou hieróglifos na tela. Por exemplo, se a menina Masha da Rússia enviasse um e-mail com a palavra Привет para seu amigo na Armênia, ele poderia receber a mensagem como ?????. O texto original se perdia, pois os computadores do remetente e do destinatário suportavam codificações diferentes.
O Unicode foi criado para resolver esse problema, oferecendo um método único de representação de símbolos e facilitando o trabalho com texto em um nível multilíngue. Com o Unicode, é possível enviar um e-mail ou publicar um texto em um site até mesmo na língua klingon — uma língua artificial desenvolvida pelo linguista Marc Okrand para o universo da série “Star Trek”. Os destinatários poderão vê-lo em seu formato original legível. Atualmente, o Unicode inclui cerca de 150 mil símbolos, o que é suficiente para abranger quase todos os sistemas de escrita.
Outras codificações: o que havia antes do Unicode
Antes do surgimento do Unicode, existiam várias codificações diferentes, cada uma destinada a uma língua específica. As mais conhecidas são ASCII, KOI8-R e Windows-1251.
- ASCII: Esta é uma tabela de codificação que inclui 127 símbolos, como letras latinas, números e sinais de pontuação. No entanto, o ASCII não suporta símbolos cirílicos, e ao tentar codificar texto em russo, os usuários recebiam um conjunto de sinais de interrogação, perdendo o texto original.
- KOI8-R: Esta codificação foi desenvolvida para exibir símbolos não apenas do alfabeto latino. O KOI8-R é compatível com o ASCII e inclui 256 caracteres, permitindo a exibição de cirílico.
- Windows-1251: Outra codificação que suporta cirílico. Apesar disso, os símbolos podem ser codificados de maneiras diferentes em diferentes codificações. Por exemplo, o símbolo Г pode ter representações diferentes no KOI8-R e no Windows-1251.
O problema da incompatibilidade entre diferentes codificações se manifestava quando um texto codificado com uma codificação era decodificado com outra. Além disso, havia sérias limitações quanto ao número de símbolos nas antigas codificações: o ASCII tinha 127 símbolos, e o Windows-1251 tinha 256. Para muitas línguas menos populares, as codificações simplesmente não existiam. O Unicode, por outro lado, oferece uma solução universal, incluindo todos os símbolos permitidos e as regras para sua codificação.
