FreeToGenerate.com

Todos os emojis da lista oficial do Unicode, e porque o seu contador de caracteres não concorda com os seus olhos.

A mostrar 1.914 / 1.914

Clique em qualquer emoji para o copiar

Contar emojis como os conta quem lê

Cole qualquer texto com emojis. Quase todos os contadores de caracteres mostram o número do meio ou o da direita; uma pessoa a olhar para o ecrã conta o da esquerda.

Também disponível em: English · Español · Français · العربية

Lista de emojis

O conjunto completo de emojis do Unicode, com pesquisa e por grupos, e uma resposta honesta a quantos há e quanto ocupa um.

O que é esta lista de emojis

É cada emoji que o Unicode define, retirado do emoji-test.txt — o ficheiro que o Consórcio Unicode publica como lista definitiva — na versão 17.0. Não é uma selecção feita à mão: os grupos, os subgrupos e a ordem são os que o próprio Unicode especifica, portanto aqui nada foi acrescentado, retirado ou reordenado.

Clique em qualquer emoji para o copiar. Procure pelo nome na sua língua, porque os nomes vêm do Unicode CLDR e não de uma ronda de tradução, e filtre por qualquer um dos nove grupos que o Unicode define: caras, pessoas, animais, comida, viagens, actividades, objectos, símbolos e bandeiras.

A página faz ainda algo que nenhuma lista de emojis costuma fazer, e é a razão para a ler em vez de apenas percorrer: diz-lhe quanto mede realmente um emoji. Esse número não é o que se adivinharia, e é a origem de toda uma família de erros.

Como usar esta página

  1. Procure ou escolha um grupo. O que escreve é comparado com o nome do emoji na língua em que está a ler isto, portanto «foguetão», «rocket» e «fusée» encontram a mesma coisa. Colar um emoji na caixa também o encontra, o que dá jeito quando tem um e quer saber como se chama.
  2. Ligue as variantes de tom de pele se precisar delas. Vêm desligadas, e é por isso que a contagem começa em 1914 e não em 3944. Ao ligá-las aparecem todas as formas modificadas, e o grupo Pessoas e corpo mais do que triplica.
  3. Cole alguma coisa no contador do fim. Dá três números: o que quem lê conta, quantos pontos de código existem e o que diz a propriedade length do JavaScript. Com texto normal os três coincidem. Com emojis não, e essa diferença é o que parte os limites de comprimento.

Quantos emojis existem

Há duas respostas honestas e convém saber qual lhe estão a dar. O Unicode 17.0 lista 3944 emojis totalmente qualificados. Mas 2030 deles — mais de metade — são variantes de tom de pele dos outros 1914. A mesma mão a acenar aparece seis vezes: uma por modificar e outra por cada um dos cinco tons.

Portanto «3944 emojis» e «1914 emojis» são ambas verdadeiras, e qual está certa depende de considerar ou não que um emoji modificado é outro emoji. Esta página mostra por omissão o conjunto base de 1914, porque é o que realmente quer quem anda à procura de algo para colar, e mostra o número completo assim que lho pedirem. Qualquer fonte que dê um único número sem dizer qual dos dois é saltou a parte interessante.

Os grupos estão desequilibrados pela mesma razão. Pessoas e corpo junta 2418 dos 3944 — 61% de todos os emojis — porque quase tudo o que lá está aceita tom de pele. Desligue as variantes e desce a umas poucas centenas. Bandeiras, pelo contrário, tem 270 e nenhuma varia.

Um emoji é um carácter e mede cerca de cinco

É esta a parte que importa a quem programa. Cada um dos 3944 emojis é exactamente um agrupamento de grafemas: um carácter, tal como os conta quem lê. Verificámos em todos, não numa amostra. Mas 3884 deles, 98,5%, têm um length do JavaScript diferente de 1.

Somado sobre o conjunto inteiro, o length dá 20 064 para o que quem lê conta como 3944 caracteres: 5,09 vezes a mais. O pior caso é uma sequência de beijo com 15 unidades UTF-16: um carácter no ecrã, quinze segundo quase todos os contadores de caracteres, limites de campo de texto ou colunas de base de dados alguma vez escritos.

A razão é que a maioria dos emojis são sequências. 1614 são unidos por um juntador de largura zero, um carácter invisível que cola vários emojis num único desenho — é assim que se constrói uma família ou um casal. Os tons de pele acrescentam outro ponto de código. E 1180 levam um selector de variação, U+FE0F, uma marca invisível que diz «desenha isto como emoji e não como símbolo a preto e branco».

A solução não tem mérito nenhum, apenas é menos comum do que devia: o Intl.Segmenter com granularidade de grafema conta o que quem lê conta, e acerta nos 3944. O contador desta página usa-o, e mostra os outros dois números ao lado para que veja quanto se afastam no seu próprio texto.

Porque dois emojis idênticos podem não ser iguais

O Unicode marca cada sequência da sua lista como totalmente qualificada, minimamente qualificada ou não qualificada, e toda a distinção se resume àquele carácter invisível. Verificámo-lo como propriedade em vez de confiar na descrição: as 1029 sequências minimamente qualificadas transformam-se num emoji totalmente qualificado quando se lhes retira o U+FE0F. Não a maioria: todas.

Assim, um coração vermelho escrito U+2764 U+FE0F e outro escrito só U+2764 parecem idênticos em qualquer tipo de letra e são cadeias diferentes. Um não corresponde ao outro, não gera o mesmo hash e falha qualquer comparação de igualdade em qualquer linguagem. Se alguma vez teve um filtro de emojis que deixava misteriosamente passar alguns corações, era quase de certeza isto.

A regra prática: normalize antes de comparar. Retire os selectores de variação dos dois lados, ou compare sempre as formas totalmente qualificadas. Os emojis que esta página copia para a área de transferência são os totalmente qualificados, que é o que quer em quase todos os casos, por ser a grafia que se desenha a cores em toda a parte.

Limites honestos

Que um emoji sequer apareça depende do seu aparelho e não desta página. O Unicode define o carácter; a Apple, a Google, a Microsoft, a Samsung e os projectos de tipos de letra livres desenham-no cada um ao seu ritmo. Um emoji acabado de sair na versão 17.0 aparecerá como um quadrado vazio num telemóvel por actualizar, e não há nada que uma página web possa fazer quanto a isso. Se uma célula parece vazia, o emoji existe e o seu sistema ainda não o tem.

Também não se vêem da mesma maneira em toda a parte. O mesmo ponto de código é um desenho diferente em cada plataforma, e alguns chegaram a diferir o suficiente para mudar o sentido de uma mensagem. O que copia é o carácter, nunca a imagem: a imagem é escolhida por quem o ler.

Esta lista é um instantâneo do Unicode 17.0. São acrescentados emojis novos mais ou menos uma vez por ano, portanto uma versão publicada depois de esta página ter sido construída não está aqui. O gerador está no repositório e regenerar é um único comando.

Por fim, o contador mede agrupamentos de grafemas, que é a resposta certa a «quantos caracteres é isto». Nem sempre é a certa a «vai caber?», porque cada serviço impõe as suas regras: uns contam bytes UTF-8, outros unidades UTF-16 e outros cobram os emojis a um preço fixo. Os três números são mostrados para que possa usar aquele que o serviço à sua frente utiliza.

Porque é grátis

Porque é uma lista e umas medições de cadeias de texto. O conjunto de dados inteiro está na página que já carregou, tudo corre no seu navegador e nada do que colar no contador é enviado ou guardado.

Portanto não há conta, nem registo, nem nada guardado atrás de um. O gerador que constrói isto a partir do emoji-test.txt do Unicode e das anotações de nomes do CLDR está no repositório ao lado da página, com as 139 verificações que conferem as contagens, a afirmação sobre os grafemas e a propriedade da qualificação, incluindo os controlos negativos que impedem esses testes de passar pela razão errada.