Como esse cara invadiu o limite de 140 caracteres do Twitter?


36

Hoje fiquei surpreso ao ver que um cara invadiu o limite de 140 caracteres do Twitter. A mensagem consiste em 930 caracteres. Como isso pode ser possível?

O link direto para este tweet está aqui . Por conveniência, estou copiando a captura de tela do tweet completo abaixo:

insira a descrição da imagem aqui


1
Parece ser um truque legal, mas não é uma solução para o limite de 140 caracteres. Na verdade, é melhor. Porque as pessoas vão declarar claramente o que precisam dizer, em vez de escrever todo o lixo. :)

1
Então, pessoal, pode ser uma informação útil, no centro da mensagem há uma frase em russo: Твиттим и не ограничиваемся людиии !!!!!! 140 не предел! Que em inglês é: Continue twittando sem limites, pessoal !!!!! 140 não é um limite! Eu acho que alguns "hakers" russos? :-)
— Trabalhador

Parece que o Twitter corrigiu esse bug. Confira o link direto para o tweet.
— Mehper C. Palavuzlar

A resposta curta: o tweet tem menos de 140 caracteres; é apenas um problema de codificação que está causando o seu navegador para exibi- lo como mais caracteres.
— precisa

Um comentário abaixo da questão dos estados foi corrigido pelo twitter. Hoje me deparei com outro tweet que é bastante semelhante - twitter.com/#!/luchetti/status/177524100930084864
— Chethan S.

Respostas:


41

A mensagem contém pontos de código substitutos Unicode que estão incorretamente codificados como UTF-8. Esse tipo de codificação imprópria também é chamado CESU-8 . Parece que algumas interfaces do Twitter aceitam os pontos de código substitutos codificados pelo CESU-8 como caracteres (para fins do limite de 140 caracteres), mas para fins de exibição, espera UTF-8 válido e essas não são sequências UTF-8 válidas. Em vez disso, exibe os 3 bytes de cada uma dessas seqüências como 3 seqüências de escape octais no estilo C de 4 caracteres cada, e cada ponto de código substituto acaba sendo exibido usando 12 caracteres.

Por exemplo, \ 355 \ 240 \ 265 \ 355 \ 263 \ 220 quando decodificado como UTF-8 com escape C, sem rejeitar substitutos, como normalmente seria feito ao decodificar UTF-8, decodifica para o par substituto U + D835 U + DCD0. Tratar esse par substituto como UTF-16, como seria feito ao decodificar o CESU-8, produz o caractere Unicode U + 1D4D0 CAPITAL A (𝓐).

Se o escape octal do estilo C for decodificado e o resultado for interpretado como CESU-8, ele será:

𝓐𝓛𝓜𝓐𝓣𝓨 𝓐𝓛𝓜𝓐𝓣𝓨 𝓐𝓛𝓜𝓐𝓣𝓨 Твиттим и не ограничиваемся людиии !!!!!! 140 не предел! =)))) 𝓐𝓛𝓜𝓐𝓣𝓨 𝓐𝓛𝓜𝓐𝓣𝓨

Aqui está como uma imagem, para aqueles sem um conjunto completo de fontes Unicode instaladas:

𝓐𝓛𝓜𝓐𝓣𝓨 𝓐𝓛𝓜𝓐𝓣𝓨 𝓐𝓛𝓜𝓐𝓣𝓨 Твиттим и не ограничиваемся людиии !!!!!!  140 не предел! =)))) 𝓐𝓛𝓜𝓐𝓣𝓨 𝓐𝓛𝓜𝓐𝓣𝓨


1
realmente 101 caracteres - bom trabalho @ mark4o
— Jörg

3
Parece que o Twitter corrigiu esse bug. Agora a mensagem aparece exatamente como a imagem que você postou na sua resposta.
— Mehper C. Palavuzlar

Ainda vejo as caixas quadradas, @ MehperC.Palavuzlar. É possível que eu não possua QUALQUER fonte instalada com um conjunto completo de caracteres Unicode?
— Gaia

3

Cada grupo de caracteres começando com uma barra invertida e seguido por três números é uma " Sequência de escape ". Cada um deles representa um único caractere. Eles geralmente são usados ​​para caracteres que não existem no teclado, como caracteres e símbolos que não sejam do idioma inglês.

Meu palpite é que, ao contar os caracteres, o Twitter conta cada um desses grupos como um único caractere, mas ao exibi-los no navegador, os imprime como quatro.

Atualizar:

Algumas das seqüências de escape disponíveis são "caracteres de controle". Eles dizem ao computador para executar algo como reproduzir um som de alerta ou mover o cursor para a esquerda ou direita ou para cima ou para baixo ou excluir o caractere à esquerda do cursor. Embora nenhum deles seja o último que mencionei (excluindo o personagem anterior), ele pode ter usado esse personagem para confundir o Twitter também.

Curiosamente, quando transformado em caracteres normais, é bastante repetitivo e se parece com isso:

í µ í ³ í µ í ³ › í µ í ³ œ í µ í ³ í µ í ³ £ í µ í ³ ¨ í µ í ³ í µ í ³ › í µ í ³ œ í µ í ³ í µ í ³ £ í µ í ³ ¨ 

Atualização 2:

A explicação que ele deu foi "Пишите в DM, всегда на связи)", que o Google Translate me diz é "Escreva para o DM, sempre conectado"). Não sei exatamente o que isso significa ou como isso ajuda.


1
Pensei nisso também (é a explicação mais razoável que me vem à cabeça), mas o problema é que existem muito mais de 140 grupos de quatro (140 * 4 = 560, o que é menor que a contagem de 930 que Mepher declarou )
— 18711 Alex

@ Alex: Isso mesmo. Tentei copiar e colar a mensagem inteira em uma nova caixa de tweet, mas o Twitter diz que são mais de 140 caracteres. Eu também tentei no TweetDeck, mas novamente não vai.
— Mehper C. Palavuzlar

Bem manchado. Atualizei minha resposta, mas não vejo nenhuma evidência de que a atualização foi o que realmente aconteceu.
— Ladadadada

2
@Mehper, você não podia simplesmente copiá-lo para uma caixa de tweet, porque o twitter o interpretaria como caracteres separados ('\', '3', '5', '5') etc. Você precisaria criar um script que envia os "símbolos" como bytes, não caracteres de escape.
— Tor Valamo

"Пишите в DM, всегда на связи)" significa que ele o convida a enviar uma mensagem privada para ele, que responde rapidamente. Minha tradução seria: "Envie um DM, eu estou sempre lá".
— Malcolm
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.