UTF-32

UTF-32 (oder UCS-4) ist ein Protokoll, um Charaktere von Unicode zu verschlüsseln, der genau 32 Bit pro Codepunkt von Unicode verwendet. Ganze andere Transformation von Unicode formatiert Gebrauch-variable Länge encodings. Die UTF-32-Form eines Charakters ist eine direkte Darstellung seines codepoint.

Der Hauptvorteil von UTF-32, gegen die variable Länge encodings, besteht darin, dass die Codepunkte von Unicode direkt indexable sind. Das Überprüfen des N'Th-Codepunkts ist eine unveränderliche Zeitoperation. Im Gegensatz verlangt ein Code der variablen Länge, dass folgender Zugang den N'Th-Codepunkt findet. Das macht UTF-32 einen einfachen Ersatz im Code, der ganze Zahlen verwendet, um Charaktere aus Schnuren mit einem Inhaltsverzeichnis zu versehen, wie für ASCII allgemein getan wurde.

Der Hauptnachteil von UTF-32 ist, dass es ineffizienter Raum mit vier Bytes pro Charakter ist. Non-BMP Charaktere sind in den meisten Texten so selten, sie können ebenso nicht existierend betrachtet werden, um Probleme nach Größen zu ordnen, UTF-32 zweimal die Größe von UTF-16 und bis zu viermal die Größe von UTF-8 machend.

Obwohl eine festgelegte Zahl von Bytes pro Codepunkt günstig scheint, ist es nicht so nützlich, wie es erscheint. Es macht Stutzung leichter, aber nicht bedeutsam so im Vergleich zu UTF-8 und UTF-16. Es macht es schneller nicht, um einen besonderen Ausgleich in der Schnur zu finden, weil ein "Ausgleich" in den Codeeinheiten der festen Größe jeder Verschlüsselung gemessen werden kann. Es macht das Rechnen der gezeigten Breite einer Schnur leichter außer in beschränkten Fällen seitdem sogar mit einer "festen Breite nicht" Schriftart kann es mehr als einen Codepunkt pro Charakter-Position geben (Zeichen verbindend), oder mehr als eine Charakter-Position pro Codepunkt (zum Beispiel CJK Begriffszeichen). Das Kombinieren von Zeichen bedeutet, dass Redakteure einen Codepunkt als seiend dasselbe als eine Einheit für das Redigieren nicht behandeln können. Redakteure, die sich in zum Recht nach links Sprachen und vorzusammengesetzte Charaktere beschränken, können fest-große Codeeinheiten ausnutzen, aber solche Redakteure werden kaum non-BMP Charaktere unterstützen und können so ebenso gut mit UTF-16 16-Bit-Verschlüsselung arbeiten.

Geschichte

Der ursprüngliche ISO 10646 Standard definiert 31 Bit, die Form genannt UCS-4 verschlüsseln, in dem jeder verschlüsselte Charakter in Universal Character Set (UCS) durch einen freundlichen 32-Bit-Codewert im Coderaum von ganzen Zahlen zwischen 0 und hexadecimal 7FFFFFFF vertreten wird.

Weil nur 17 Flugzeuge wirklich im Gebrauch sind, sind alle aktuellen Codepunkte zwischen 0 und 0x10FFFF. UTF-32 ist eine Teilmenge von UCS-4, der nur diese Reihe verwendet. Da das Grundsatz- und Verfahren-Dokument von JTC1/SC2/WG2 feststellt, dass alle zukünftigen Anweisungen von Charakteren zum BMP oder den ersten 14 ergänzenden Flugzeugen beschränkt werden, wird UTF-32 im Stande sein, alle Charaktere von Unicode zu vertreten. Entsprechend sind UCS-4 und UTF-32 jetzt identisch, außer dass der UTF-32 Standard zusätzliche Semantik von Unicode hat.

Verwenden

Der Hauptgebrauch von UTF-32 ist in der inneren API, wo die Daten einzelne Codepunkte oder glyphs, aber nicht Reihen von Charakteren sind. Zum Beispiel im modernen Text, der es macht, ist üblich, dass der letzte Schritt ist, eine Liste von Strukturen jeder zu bauen, x, y Position, Attribute und ein einzelner UTF-32 Charakter enthaltend, der den glyph identifiziert, um zu ziehen. Häufig wird Non-Unicode-Information in den "unbenutzten" 11 Bit jedes Wortes versorgt.

Auf Unix Systemen werden UTF-32 Schnuren manchmal für die Lagerung wegen des Typs verwendet, der als 32 Bit wird definiert. Pythonschlange kann kompiliert werden, um sie statt UTF-16 zu verwenden. Der Gebrauch von UTF-32 spannt auf Windows (wo 16 Bit ist), ist fast nicht existierend.

Nichtgebrauch in HTML5

HTML5 stellt fest, dass "Autoren UTF-32 nicht verwenden sollten, weil die Verschlüsselungsentdeckungsalgorithmen, die in dieser Spezifizierung absichtlich beschrieben sind, es von UTF-16 nicht unterscheiden."

Siehe auch

  • Vergleich von Unicode encodings

Links


Eddie Stobart / Coober Pedy, das südliche Australien
Impressum & Datenschutz