In che modo questo tizio ha violato il limite di 140 caratteri di Twitter?


36

Oggi sono stato sorpreso di vedere che un ragazzo ha violato il limite di 140 caratteri di Twitter. Il messaggio è composto da 930 caratteri. Come potrebbe essere possibile?

Il link diretto a questo tweet è qui . Per comodità, sto copiando lo screenshot del tweet completo di seguito:

inserisci qui la descrizione dell'immagine


1
Sembra essere un bel trucco, ma non è una soluzione per il limite di 140 caratteri. In realtà è MEGLIO. Perché le persone dichiareranno chiaramente ciò che devono dire, invece di scrivere tutta la spazzatura. :)

1
Quindi ragazzi, potrebbe essere un'informazione utile, al centro del messaggio c'è la frase in russo: Твиттим и не ограничиваемся людиии !!!!!! 140 не предел! Che in inglese è: continua a girare senza limiti, gente !!!!! 140 non è un limite! Immagino che alcuni "venditori ambulanti" russi? :-)
Lavoratore,

Sembra che Twitter abbia corretto quel bug. Dai un'occhiata al link diretto al tweet.
Mehper C. Palavuzlar,

La risposta breve: il tweet ha meno di 140 caratteri; è solo un problema di codifica che causa la visualizzazione del tuo browser come più caratteri.
ShreevatsaR,

Un commento sotto afferma che il problema è stato risolto da Twitter. Oggi mi sono imbattuto in un altro tweet che è abbastanza simile - twitter.com/#!/luchetti/status/177524100930084864
Chethan S.

Risposte:


41

Il messaggio contiene punti di codice surrogato Unicode codificati erroneamente come UTF-8. Questo tipo di codifica impropria è anche chiamata CESU-8 . Sembra che alcune interfacce di Twitter accettino i punti di codice surrogato codificati CESU-8 come caratteri (ai fini del limite di 140 caratteri), ma per scopi di visualizzazione si aspetta UTF-8 valido e queste non sono sequenze UTF-8 valide. Quindi mostra invece i 3 byte di ciascuna di queste sequenze come 3 sequenze di escape ottali in stile C di 4 caratteri ciascuna, e ogni punto di codice surrogato finisce per essere visualizzato usando 12 caratteri.

Ad esempio \ 355 \ 240 \ 265 \ 355 \ 263 \ 220 quando decodificato come UTF-8 con escape C, senza rifiutare i surrogati come si farebbe normalmente durante la decodifica UTF-8, decodifica alla coppia surrogata U + D835 U + DCD0. Il trattamento di questa coppia surrogata come UTF-16, come si farebbe durante la decodifica del CESU-8, produce il carattere Unicode U + 1D4D0 CAPITALE A SCRITTURA GRASSA MATEMATICA A (𝓐).

Se la fuga ottale in stile C viene decodificata e il risultato viene interpretato come CESU-8, viene fuori:

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

Ecco come un'immagine, per quelli senza un set completo di caratteri Unicode installati:

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


1
in realtà 101 caratteri - buon lavoro @ mark4o
Jörg

3
Sembra che Twitter abbia corretto quel bug. Ora il messaggio appare proprio come l'immagine che hai pubblicato nella tua risposta.
Mehper C. Palavuzlar,

Vedo ancora le scatole quadrate, @ MehperC.Palavuzlar. È possibile che non abbia installato QUALSIASI font con un set completo di caratteri Unicode?
Gaia,

3

Ogni gruppo di personaggi che inizia con una barra rovesciata e seguito da tre numeri è una " sequenza di fuga ". Ognuno di essi rappresenta un singolo personaggio. Di solito vengono utilizzati per caratteri che non esistono sulla tastiera come caratteri e simboli non in lingua inglese.

La mia ipotesi è che quando si contano i personaggi, Twitter sta contando ciascuno di questi gruppi come un singolo personaggio ma quando li visualizza sul browser li sta stampando come quattro.

Aggiornare:

Alcune delle sequenze di escape disponibili sono "personaggi di controllo". Questi dicono al computer di fare qualcosa come riprodurre un suono di avviso o spostare il cursore a sinistra o a destra o in alto o in basso o eliminare il carattere a sinistra del cursore. Sebbene nessuno di questi sia l'ultimo che ho menzionato (eliminando il personaggio precedente), potrebbe aver usato quel personaggio anche per confondere Twitter.

È interessante notare che, quando è tornato in caratteri normali, è abbastanza ripetitivo e assomiglia a questo:

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

Aggiornamento 2:

La spiegazione che ha dato è stata "Пишите в DM, всегда на связи)" che Google Translate mi dice è "Scrivi al DM, sempre in connessione)". Non sono sicuro esattamente cosa significhi o come aiuti.


1
Ho pensato anche a quello (è la spiegazione più ragionevole che mi viene in mente), ma il problema è che ci sono molto più di 140 gruppi di quattro (140 * 4 = 560, che è inferiore al conteggio dei 930 dichiarato da Mepher ).
Alex,

@Alex: Esatto. Ho provato a copiare e incollare l'intero messaggio in una nuova casella di tweet, ma Twitter dice che sono più di 140 caratteri. Ho anche provato in TweetDeck ma ancora una volta non ci riesco.
Mehper C. Palavuzlar,

Ben individuato. Ho aggiornato la mia risposta, ma non riesco a vedere alcuna prova del fatto che l'aggiornamento sia effettivamente accaduto.
Ladadadada,

2
@Mehper non potresti semplicemente copiarlo in una casella di tweet, perché Twitter lo interpreterebbe come caratteri separati ('\', '3', '5', '5') ecc. Dovresti creare uno script che invia i "simboli" come byte, non caratteri di escape.
Tor Valamo,

"Пишите в DM, всегда на связи)" significa che ti invita a inviargli un messaggio privato, ti risponderà rapidamente. La mia traduzione sarebbe: "Invia un DM, ci sono sempre".
Malcolm,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.