Nullzeichen - Null character

Das Nullzeichen (auch Nullterminator ) ist ein Steuerzeichen mit dem Wert Null. Es ist in vielen Zeichensätze , einschließlich der von der definierten Baudot und ITA2 Codes, ISO / IEC 646 (oder ASCII ), der C0 - Steuercode , der Universal Character Set (oder Unicode ) und EBCDIC . Es ist in fast allen gängigen Programmiersprachen verfügbar . Es wird oft als NUL abgekürzt (oder NULL, obwohl dieser Begriff in einigen Kontexten für den Nullzeiger verwendet wird , ein anderes Objekt). In 8-Bit-Codes wird es als Nullbyte bezeichnet .

Die ursprüngliche Bedeutung dieses Zeichens war wie NOP – wenn es an einen Drucker oder ein Terminal gesendet wird , tut es nichts (einige Terminals zeigen es jedoch fälschlicherweise als Leerzeichen an ). Wenn elektromechanische Fernschreiber als Computerausgabegeräte verwendet wurden, wurden am Ende jeder gedruckten Zeile ein oder mehrere Nullzeichen gesendet, um dem Mechanismus Zeit zu geben, in der nächsten Zeile zur ersten Druckposition zurückzukehren. Auf Lochstreifen wird das Zeichen ohne Löcher dargestellt, so dass ein neues ungelochtes Band zunächst mit Nullzeichen gefüllt wird, und oft könnte Text an einer reservierten Stelle mit Nullzeichen "eingefügt" werden, indem die neuen Zeichen in das Band gelocht werden die Nullen.

Heute hat das Zeichen in C und seinen Derivaten und in vielen Datenformaten eine viel größere Bedeutung , wo es als reserviertes Zeichen dient, das das Ende einer Zeichenfolge kennzeichnet , die oft als nullterminierte Zeichenfolge bezeichnet wird . Dadurch kann die Zeichenfolge eine beliebige Länge mit nur einem Byte Overhead haben; die Alternative zum Speichern einer Zählung erfordert entweder eine Begrenzung der Stringlänge von 255 oder einen Overhead von mehr als einem Byte (es gibt weitere Vor- und Nachteile, die im Artikel über nullterminierte Strings beschrieben werden).

Darstellung

Das Nullzeichen wird oft als Escape-Sequenz \0 im Quellcode , String-Literalen oder Zeichenkonstanten dargestellt. In vielen Sprachen ( wie C , die diese Notation eingeführt hat) ist dies keine separate Escape-Sequenz, sondern eine oktale Escape-Sequenz mit einer einzelnen oktalen Ziffer 0; folglich \0darf keine der Ziffern 0bis folgen 7; andernfalls wird es als Beginn einer längeren oktalen Escape-Sequenz interpretiert. Andere Escape-Sequenzen, die in verschiedenen Sprachen verwendet werden \000, sind , \x00, \z, oder \u0000. Ein Null - Zeichen kann in einem platziert wird URL mit dem Prozentcode %00 .

Die Möglichkeit, ein Nullzeichen darzustellen, bedeutet nicht immer, dass die resultierende Zeichenfolge korrekt interpretiert wird, da viele Programme die Null als das Ende der Zeichenfolge betrachten. Daher schafft die Möglichkeit der Eingabe (bei ungeprüften Benutzereingaben ) eine Schwachstelle, die als Null-Byte-Injektion bekannt ist und zu Sicherheitslücken führen kann.

In der Caret-Notation ist das Nullzeichen ^@. Auf einigen Tastaturen kann man ein Nullzeichen eingeben, indem man Ctrlgedrückt hält und drückt @(auf US-Layouts funktioniert oft nur Ctrl+ 2, es ist nicht erforderlich ⇧ Shift, das @-Zeichen zu erhalten).

In der Dokumentation wird das Nullzeichen manchmal als ein einzelnes em -breites Symbol dargestellt, das die Buchstaben "NUL" enthält. In Unicode gibt es ein Zeichen mit einer entsprechenden Glyphe zur visuellen Darstellung des Nullzeichens „Symbol für Null“, U+2400 (␀) – nicht zu verwechseln mit dem eigentlichen Nullzeichen U+0000.

Codierung

In allen modernen Zeichensätzen hat das Nullzeichen einen Codepunktwert von Null. In den meisten Codierungen wird dies in eine einzelne Codeeinheit mit einem Nullwert übersetzt. In UTF-8 ist es beispielsweise ein einzelnes Null-Byte. In Modified UTF-8 wird das Nullzeichen jedoch in zwei Bytes codiert: 0xC0, 0x80. Dadurch kann das Byte mit dem Wert Null, das jetzt für kein Zeichen verwendet wird, als Zeichenfolgenabschluss verwendet werden.

Probleme

Einige Leute, deren Name Null ist, haben Probleme mit Computersystemen gehabt.

Verweise

Externe Links

  • Null-Byte-Injektion WASC-Bedrohungsklassifizierung Abschnitt Null-Byte-Angriff
  • Poison Null Byte Einführung Einführung in Nullify 9
  • Byte-Angriff