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

Mehper C. Palavuzlar
fonte
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 не предел! =)))) 𝓐𝓛𝓜𝓐𝓣𝓨 𝓐𝓛𝓜𝓐𝓣𝓨

mark4o
fonte
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.

Ladadadada
fonte
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