¿Cómo pirateó este tipo el límite de 140 caracteres de Twitter?

36

Hoy me sorprendió ver que un tipo hackeó el límite de 140 caracteres de Twitter. El mensaje consta de 930 caracteres. ¿Cómo puede ser esto posible?

El enlace directo a este tweet está aquí. . Por conveniencia, estoy copiando la captura de pantalla del tweet completo a continuación:

ingrese la descripción de la imagen aquí

Mehper C. Palavuzlar
fuente
1
Parece ser un truco genial, pero no es una solución para el límite de 140 caracteres. En realidad es mejor. Porque las personas declararán claramente lo que necesitan contar, en lugar de escribir toda la basura. :)
1
Entonces, muchachos, podría ser información útil, en el centro del mensaje hay una frase en ruso: Твиттим и не ограничиваемся людиии !!!!!! 140 не предел! Lo que en inglés es: ¡¡¡Sigue twitteando sin límites, gente !!!!! 140 no es un límite! Supongo que algunos "hakers" rusos? :-)
Trabajador
Parece que Twitter ha solucionado ese error. Mira el enlace directo al tweet.
Mehper C. Palavuzlar
La respuesta corta: el tweet tiene menos de 140 caracteres; es solo un problema de codificación que hace que su navegador lo muestre como más caracteres.
ShreevatsaR
Twitter ha solucionado un comentario a continuación. Hoy me encontré con otro tweet que es bastante similar: twitter.com/#!/luchetti/status/177524100930084864
Chethan S.

Respuestas:

41

El mensaje contiene puntos de código sustituto de Unicode que están codificados incorrectamente como UTF-8. Este tipo de codificación incorrecta también se llama CESU-8 . Parece que algunas interfaces de Twitter aceptarán los puntos de código sustituto codificados CESU-8 como caracteres (para el límite de 140 caracteres), pero para fines de visualización espera UTF-8 válido y estas no son secuencias UTF-8 válidas. Por lo tanto, muestra los 3 bytes de cada una de estas secuencias como 3 secuencias de escape octal de estilo C de 4 caracteres cada una, y cada punto de código sustituto termina mostrándose con 12 caracteres.

Por ejemplo, \ 355 \ 240 \ 265 \ 355 \ 263 \ 220 cuando se decodifica como C-escape UTF-8, sin rechazar sustitutos como se haría normalmente al decodificar UTF-8, decodifica al par sustituto U + D835 U + DCD0. El tratamiento de este par sustituto como UTF-16, como se haría al decodificar CESU-8, produce el carácter Unicode U + 1D4D0 CAPITAL A BORDADO MATEMÁTICO A NEGRO (𝓐).

Si el escape octal de estilo C se decodifica y el resultado se interpreta como CESU-8, se obtiene:

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

Aquí está como una imagen, para aquellos que no tienen un conjunto completo de fuentes Unicode instaladas:

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

mark4o
fuente
1
en realidad 101 caracteres - buen trabajo @ mark4o
Jörg
3
Parece que Twitter ha solucionado ese error. Ahora el mensaje aparece justo como la imagen que publicó en su respuesta.
Mehper C. Palavuzlar
Todavía veo las cajas cuadradas, @ MehperC.Palavuzlar. ¿Es posible que no tenga NINGUNA fuente instalada con un conjunto completo de caracteres Unicode?
Gaia
3

Cada grupo de caracteres que comienza con una barra diagonal inversa y seguido de tres números es una " secuencia de escape ". Cada uno de ellos representa un solo personaje. Por lo general, se usan para caracteres que no existen en su teclado, como los caracteres y símbolos que no están en inglés.

Supongo que al contar los caracteres, Twitter cuenta cada uno de estos grupos como un solo carácter, pero cuando los muestra en el navegador los imprime como cuatro.

Actualizar:

Algunas de las secuencias de escape disponibles son "caracteres de control". Estos le dicen a la computadora que haga algo como reproducir un sonido de alerta o mover el cursor hacia la izquierda o hacia la derecha o hacia arriba o hacia abajo o eliminar el carácter a la izquierda del cursor. Aunque ninguno de ellos es el último que mencioné (eliminando el carácter anterior), también podría haber usado ese personaje para confundir a Twitter.

Curiosamente, cuando se vuelve a convertir en caracteres normales, es bastante repetitivo y se ve más o menos así:

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

Actualización 2:

La explicación que dio fue "Пишите в DM, всегда на связи)" que el Traductor de Google me dice es "Escribir en el DM, siempre en conexión)". No estoy seguro exactamente qué significa eso o cómo ayuda.

Ladadadada
fuente
1
También pensé en eso (es la explicación más razonable que se me ocurre), pero el problema es que hay más de 140 grupos de cuatro (140 * 4 = 560, que es menos que el recuento de 930 que Mepher declaró )
Alex
@ Alex: Eso es correcto. Intenté copiar y pegar todo el mensaje en un nuevo cuadro de tweet, pero Twitter dice que son más de 140 caracteres. También probé en TweetDeck, pero de nuevo no voy.
Mehper C. Palavuzlar
Bien descrito. He actualizado mi respuesta, pero no puedo ver ninguna evidencia de que la actualización es lo que realmente sucedió.
Ladadadada
2
@Mehper, no podría simplemente copiarlo en un cuadro de tweet, porque Twitter lo interpretaría como caracteres separados ('\', '3', '5', '5'), etc. Tendría que crear un script que envía los "símbolos" como bytes, no caracteres de escape.
Tor Valamo
"Пишите в DM, всегда на связи)" significa que te invita a enviarle un mensaje privado, él responderá rápidamente. Mi traducción sería: "Envía un DM, siempre estoy ahí".
Malcolm