Wie hat dieser Typ das 140-Zeichen-Limit von Twitter gehackt?

36

Heute war ich überrascht zu sehen, dass ein Typ das 140-Zeichen-Limit von Twitter gehackt hat. Die Nachricht besteht aus 930 Zeichen. Wie könnte das möglich sein?

Der direkte Link zu diesem Tweet ist hier . Der Einfachheit halber kopiere ich den Screenshot des vollständigen Tweets unten:

Bildbeschreibung hier eingeben

Mehper C. Palavuzlar
quelle
1
Es scheint ein cooler Trick zu sein, aber es ist keine Lösung für das Limit von 140 Zeichen. Eigentlich ist es besser. Weil die Leute klar sagen, was sie zu erzählen haben, anstatt den ganzen Müll zu schreiben. :)
1
Also Leute, es könnte eine nützliche Information sein, in der Mitte der Nachricht steht frase auf Russisch: Твиттим и не ограничиваемся людиии !!!!!! 140 не предел! Was auf Englisch heißt: Twitting ohne Grenzen, Leute !!!!! 140 ist keine Grenze! Ich vermute, einige russische "Haker"? :-)
Arbeiter
Es scheint, dass Twitter diesen Fehler behoben hat. Schauen Sie sich den direkten Link zum Tweet an.
Mehper C. Palavuzlar
Die kurze Antwort: Der Tweet hat weniger als 140 Zeichen; Es ist nur ein Codierungsproblem, das dazu führt, dass Ihr Browser es als mehr Zeichen anzeigt .
ShreevatsaR
Ein Kommentar unter Staaten Problem wurde von Twitter behoben. Heute bin ich auf einen ähnlichen Tweet
gestoßen

Antworten:

41

Die Nachricht enthält Unicode-Ersatzcodepunkte, die nicht ordnungsgemäß als UTF-8 codiert sind. Diese Art der falschen Codierung wird auch als CESU-8 bezeichnet . Es scheint, dass einige Twitter-Interfaces die CESU-8-codierten Ersatzcodepunkte als Zeichen akzeptieren (zum Zweck der Beschränkung auf 140 Zeichen), aber für Anzeigezwecke werden gültige UTF-8-Sequenzen erwartet, und dies sind keine gültigen UTF-8-Sequenzen. Stattdessen werden die 3 Bytes jeder dieser Sequenzen als 3 oktale Escape-Sequenzen im C-Stil mit jeweils 4 Zeichen angezeigt, und jeder Ersatzcodepunkt wird schließlich mit 12 Zeichen angezeigt.

Zum Beispiel dekodiert \ 355 \ 240 \ 265 \ 355 \ 263 \ 220, wenn es als C-escape-UTF-8 dekodiert wird, ohne Surrogate zurückzuweisen, wie dies normalerweise beim Dekodieren von UTF-8 der Fall wäre, in das Surrogatpaar U + D835 U + DCD0. Wenn dieses Ersatzpaar wie bei der Dekodierung von CESU-8 als UTF-16 behandelt wird, wird das Unicode-Zeichen U + 1D4D0 MATHEMATICAL BOLD SCRIPT CAPITAL A (𝓐) erzeugt.

Wenn das Oktal-Escaping im C-Stil dekodiert und das Ergebnis als CESU-8 interpretiert wird, ergibt sich Folgendes:

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

Hier ist es als Bild für diejenigen, die keinen vollständigen Satz von Unicode-Schriftarten installiert haben:

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

mark4o
quelle
1
eigentlich 101 Zeichen - good job @ mark4o
Jörg
3
Es scheint, dass Twitter diesen Fehler behoben hat. Jetzt erscheint die Nachricht genauso wie das Bild, das Sie in Ihrer Antwort gepostet haben.
Mehper C. Palavuzlar
Ich sehe immer noch die quadratischen Kästchen, @ MehperC.Palavuzlar. Ist es möglich, dass ich keine Schriftarten mit einem vollständigen Satz von Unicode-Zeichen installiert habe?
Gaia
3

Jede Zeichengruppe, die mit einem Backslash und drei Ziffern beginnt, ist eine " Escape-Sequenz ". Jeder von ihnen steht für ein einzelnes Zeichen. Diese werden normalerweise für Zeichen verwendet, die auf Ihrer Tastatur nicht vorhanden sind, z. B. nicht englischsprachige Zeichen und Symbole.

Ich vermute, dass Twitter beim Zählen der Zeichen jede dieser Gruppen als einzelnes Zeichen zählt, aber wenn es sie dem Browser anzeigt, werden sie als vier gedruckt.

Aktualisieren:

Einige der verfügbaren Escape-Sequenzen sind "Steuerzeichen". Diese weisen den Computer an, beispielsweise einen Alarmton abzuspielen oder den Cursor nach links oder rechts oder oben oder unten zu bewegen oder das Zeichen links vom Cursor zu löschen. Obwohl keiner von ihnen der letzte ist, den ich erwähnte (Löschen des vorherigen Zeichens), könnte er dieses Zeichen auch verwendet haben, um Twitter zu verwirren.

Interessanterweise ist es, wenn es wieder in normale Zeichen umgewandelt wird, ziemlich repetitiv und sieht ungefähr so ​​aus:

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

Update 2:

Die Erklärung lautete "Пишите в DM, всегда на связи)" und laut Google Translate "Write to the DM, always on connection)". Ich bin mir nicht sicher, was das genau bedeutet oder wie es hilft.

Ladadadada
quelle
1
Ich habe auch darüber nachgedacht (es ist die vernünftigste Erklärung, die mir in den Sinn kommt), aber das Problem ist, dass es weit mehr als 140 Vierergruppen gibt (140 * 4 = 560, was weniger als die von Mepher angegebene Zahl von 930 ist ).
Alex
@ Alex: Das stimmt. Ich habe versucht, die gesamte Nachricht zu kopieren und in eine neue Tweet-Box einzufügen, aber Twitter sagt, dass es mehr als 140 Zeichen sind. Ich habe auch in TweetDeck versucht, aber wieder nicht zu gehen.
Mehper C. Palavuzlar
Gut beobachtet. Ich habe meine Antwort aktualisiert, kann jedoch keine Hinweise darauf finden, dass das Update tatsächlich stattgefunden hat.
Ladadadada
2
@Mehper Sie konnten es nicht einfach in eine Tweet-Box kopieren, da Twitter es dann als separate Zeichen ('\', '3', '5', '5') usw. interpretierte. Sie müssten ein Skript erstellen, das Sendet die "Symbole" als Bytes und nicht als Escape-Zeichen.
Tor Valamo
"Пишите в DM, всегда на связи)" bedeutet, dass er Sie einlädt, ihm eine private Nachricht zu senden. Er wird schnell darauf antworten. Meine Übersetzung wäre: "Sende ein DM, ich bin immer da".
Malcolm