Wenn Sie jemals versucht haben, eine leere Nachricht in Telegram zu senden, haben Sie höchstwahrscheinlich festgestellt, dass weder das Leerzeichen noch das Zeilenumbruchzeichen (Alt + Eingabetaste) gesendet werden - das Eingabefeld wird einfach gelöscht. Gleichzeitig konnten Sie sehen, dass andere Menschen Ihnen buchstäblich einen leeren Raum schicken, und es gelingt ihnen. Wo ist die Magie hier? Wenn Sie eine kurze Antwort wünschen, fügen Sie das "gebrochene" Zeichen u + 3164 ein. Sie können es aus den Klammern kopieren und verwenden: "ㅤㅤㅤ". Wenn Sie eine detailliertere Antwort wünschen, erfahren Sie im Folgenden, woher der unsichtbare Text kommt, wie Sie ihn erhalten und verwenden, warum Sie ihn nicht im Code verwenden sollten und welche anderen Zeichen es gibt.

Unsichtbares Symbol - wie funktioniert es?

Beginnen wir die Erklärung mit Tabellen mit Zeichen und Codierungen. Jeder Computer auf Hardwareebene versteht 2 Zeichen: 0 und 1. Dies ist für die Menschen nicht bequem, da wir noch mehr an Buchstaben gewöhnt sind, die zu Wörtern, Sätzen, Absätzen usw. geformt sind. Um problemlos mit diesen Buchstaben arbeiten zu können, haben wir uns ein sehr einfaches Schema ausgedacht – wir nehmen die Buchstaben der Reihe nach und geben ihnen eindeutige Nummern: a = 1, b = 2, c = 3 und so weiter. Wir geben auch Großbuchstaben, Zeichen (Punkt, Komma, Fragezeichen usw.), Leerzeichen und Zahlen eindeutige Nummern – eine Liste zeichnet eine eindeutige Kennung auf, die jedem möglichen Zeichen zugewiesen wird. Diese Liste wird als Zeichencodetabelle bezeichnet, und die erste Codetabelle wird als ASCII erkannt:

Die zweite Hälfte ist leer. Es ist für regionale Charaktere gedacht. Die Tabelle selbst ist wie eine Referenzinformation. Es gibt auch eine Codierung – eine Reihe von Anweisungen zum Entschlüsseln dieser Tabelle. Kodierungen erschienen aufgrund regionaler Standards. Sie werden benötigt, um Zeichen "richtig" zu lesen. Wenn wir die damals in der GUS übliche Codierung verwenden, wird darin eine Anweisung enthalten sein: "Um den Buchstaben "г" zu erhalten, verwenden Sie 8x3 in ASCII"; Wenn wir die damals in Deutschland verwendete Codierung verwenden, wird geschrieben: "Um den Buchstaben "β" zu erhalten, verwenden Sie 8x3".



Da es wegen der Lokalisierung in mehrere Sprachen furchtbar unbequem war, wurde eine neue Zeichentabelle, Unicode, erfunden und standardisiert. Unicode kann mehr als 1.000.000 Zeichen enthalten. Im Moment wurden etwa 100.000 Zeichen zu Unicode hinzugefügt - also sind weitere 90% der Zellen verfügbar. Für Unicode wurde eine universelle UTF-Codierung erfunden, um Designern das Zeichnen von Schriftarten zu erleichtern (ja, für jede separate Codierung müssen Designer eine separate Schriftart zeichnen).

Das ist genug Hintergrund - jetzt ist es an der Zeit herauszufinden, woher der unsichtbare Charakter kommt. Es geht nur um die Fehler von Unicode: Einige Sonderzeichen (Steuer- und Leerzeichen) verhalten sich nicht wie beabsichtigt. Die interessanteste Gruppe von Fehlern für uns ist der unsichtbare Charakter. Der Punkt ist, dass das Zeichen speziell sein und als sehr kleines Leerzeichen angezeigt werden sollte, aber die Codierung nimmt es als vollwertiges Zeichen (wie einen Buchstaben oder eine Zahl) wahr und zeigt es als großes Leerzeichen an. Sie haben vielleicht schon erraten, wie der unsichtbare Bereich als vollwertiges Zeichen verwendet werden kann - um ein Leerzeichen einzufügen, wo es nicht vorgesehen ist.

Unsichtbarer Text - wie kopieren und einfügen?

Zunächst informieren wir Sie über die traurige Nachricht: Auch diese Codierungsfehler werden nach und nach behoben. Früher (2012) war in "Vkontakte" ein Trick beliebt – es war möglich, ein Zeilenumbruch-Steuerzeichen in den Status einzufügen, und der Status wurde in 2 Zeilen unterteilt. Jetzt können Sie dies nicht mehr tun - die Site verarbeitet die Datenausgabe korrekt und eine solche Beschriftung unterbricht die Zeichenfolge nicht mehr:

Neben &nsbp haben soziale Netzwerke und Messenger alle Kontroll– und Sonderzeichen abgeschnitten - Sie können den Text nicht auf den Kopf stellen oder rückwärts anzeigen, wenn er ursprünglich nicht von der Sprache bereitgestellt wird. Es gibt Dienste wie https://textinvert.ru /, mit denen Sie den Text ändern können, aber sie stellen ihn nicht auf den Kopf, sondern nehmen ähnliche Buchstaben in anderen Sprachen auf. Es erfordert einen speziellen Algorithmus. Es ist extrem schwierig, jetzt einen großen leeren Text zu erstellen (obwohl es immer noch möglich ist), aber die unsichtbaren Emojis und das leere Satzzeichen, die viele Schriftarten kaputt gemacht haben, sind jetzt auch behoben. Alles, was bleibt, ist, leere Nachrichten wie diese zu senden:

Unicode U+3164 zum Einfügen eines unsichtbaren Zeichens

Das Nützlichste ist also ein unsichtbares Leerzeichen, auch bekannt als "leere Zeichenfolge". Tatsächlich gibt es 3 dieser Zeichen, hier sind ihre Codes:

Code des Charakters

Charakter

U + 115F

U +1160

U +3164

Um das Zeichen anzuzeigen, doppelklicken Sie in der Tabelle darauf. "Wort" hebt das Symbol übrigens leicht in Grau hervor.

Für den Rest der Zeichen gibt es immer noch Leerzeichen mit Adressen im Bereich von &# 8192 – &# 8202, aber wir haben sie getestet und festgestellt, dass Messenger sie als gewöhnliche Leerzeichen wahrnehmen – daher sind sie nicht von Interesse. Wenn Sie sie trotzdem brauchen oder Sie sie selbst in verschiedenen Diensten testen möchten – hier sind noch ein paar Leerzeichen und Steuerzeichen:

Code des Charakters

Was bedeutet das?

Charakter

U + 00A0

Raum ohne Lücke

 

U+2003

Geviert

U+2007

Lockiger Raum (was auch immer das bedeutet)

U+2008

Interpunktionsraum

U+2009

Schmaler Raum

U + 205F

Durchschnittlicher Mathematikraum

U +3000

Ideografischer Raum

 

Die drei obigen Zeichen sind zunächst Platzhalter für überlappende koreanische Zeichen. Sie werden als vollwertige Charaktere angesehen, obwohl sie Füllstoffe sind. Möglicherweise liegt dieses Verhalten daran, dass bei Verwendung eines Platzhalters die Hieroglyphe nicht in eine neue Zeile übertragen werden sollte. Wenn das Zeichen als Leerzeichen betrachtet wird, kann es zu einer Übertragung kommen (abhängig von anderen Steuerzeichen). Auf jeden Fall können Sie ein leeres Zeichen aus der Tabelle kopieren und an einer beliebigen Stelle einfügen. Aber wo es eingefügt werden kann - sehen wir weiter unten.

Unsichtbarer Text in WhatsApp, VK, Instagram, Zwietracht und Spielen

Wie bereits erwähnt, haben alle wichtigen Plattformen dafür gesorgt, dass Kontroll-, Sonder- und andere "nicht standardmäßige" Zeichen während der Verarbeitung ausgeschnitten werden. Daher ist der Anwendungsbereich solcher Symbole äußerst begrenzt, obwohl sie an einigen Stellen noch verwendet werden können.

WhatsApp, Viber, Telegramm:

Wenn Sie ein reguläres Leerzeichen einfügen, können Sie diese Nachricht bei WhatsApp wie bei anderen Messenger nicht senden – die Schaltfläche "Senden" wird nicht angezeigt. U+3164 kann gesendet werden. Das Ergebnis ist eine leere Nachricht.

VK, Facebook Messenger:

Es gibt die gleiche Situation wie bei Messenger – Sie können leere Nachrichten an private Nachrichten senden. Übrigens können Sie auch U + 3164 in den VK-Status setzen - es wird als leere Zeile angezeigt. Wenn Sie ein reguläres Leerzeichen setzen, wird der Status gelöscht und die Aufschrift "Status festlegen" wird sichtbar.

TikTok, Instagram: Es gibt keine Möglichkeit, den versteckten Bereich zu verwenden. Beide Plattformen betrachten den versteckten Raumcharakter als regulären Raum.

Zwietracht:

Mit Discord können Sie leere Nachrichten senden. Wenn Sie gleichzeitig versuchen, einen Kanal mit einem leeren Namen zu erstellen, können Sie dies in Discord nicht tun:

FAQS

Wenn ich ein unsichtbares Zeichen in Skype eingebe, lautet der Status "offline"?

Nein, Sie können einen beliebigen Text in die Kontostatusleiste schreiben (einschließlich eines versteckten Leerzeichens), der Status "online" oder "offline" ändert sich nicht.

Was sind die Probleme mit dem Nullzeichen in der Programmierung?

Sie sollten sie nicht in Ihrem Code verwenden, wenn Sie ihn nicht ruinieren möchten. Wenn Sie ein Zeichen zum Speichern oder Ausgeben verwenden müssen, schreiben Sie es in eine Variable oder in die Ausgabe mit einem Unicode-Code. Warum ist es besser, es nicht zu benutzen? Hier ein Beispiel für Sie:

Wie Sie sehen, haben wir eine Variable deklariert, deren Name Leerzeichen enthält, was Python verbietet. Gleichzeitig warnt PyCharm, dass mit dieser Variablen etwas nicht stimmt:

Sie verstoßen nicht nur gegen die Regeln der Sprache, Sie setzen auch eine Speiche in Ihre Räder: Um auf eine Variable zuzugreifen, müssen Sie ihren Namen manuell kopieren und einfügen. Wenn Sie ein Projekt für sich selbst machen und Ihr Leben komplizieren möchten, können Sie solche Räume nutzen, aber wenn Sie an einem ernsthaften Projekt arbeiten, versuchen Sie es nicht einmal, sonst werden Sie in Schwierigkeiten geraten.

Kann ein Sonderzeichen das Layout unterbrechen?

Theoretisch ist dies möglich, vorausgesetzt, das Layout ist schief ausgeführt oder erbt schlechte Muster. Es ist besser, solche Zeichen nicht im Layout zu verwenden, wenn Sie nicht möchten, dass eines Tages alles zusammenbricht.

Ist es möglich, diese Symbole zum Hacken zu verwenden?

Technisch gesehen kann eines der Steuerzeichen – '\0' – verwendet werden, um das System über ein in C geschriebenes Programm zu hacken. Ein Null-Terminator zeigt dem Programm an, dass die Zeile beendet ist, und nach dem Terminator kann bösartiger Code geschrieben werden. Dies ist jedoch sehr schwierig, da Sie zunächst ein Programm finden müssen, das eingehende Leitungen falsch verarbeitet, und dann auch bösartigen Code aus dem Speicher eines anderen ausführen können. Vor ungefähr 15 Jahren war es eine beliebte Art des Hackens, jetzt ähnelt es eher einer Museumsausstellung des Hackens.