/ / utf-8 - Zeichencodierung

utf-8 - Zeichencodierung

Unicode unterstützt fast alle vorhandenenZeichensätze. Die beste Form der Unicode-Zeichensatzcodierung ist die utf-8-Codierung. Es bietet Kompatibilität mit ASCII, Beständigkeit gegen Datenkorruption, Effizienz und einfache Verarbeitung. Aber über alles in Ordnung.

Formen der Codierung

Computer arbeiten mit Zahlen nicht nur alsabstrakte mathematische Objekte, aber als Kombinationen von Einheiten der Speicherung und Verarbeitung von Informationen fester Größe - Bytes und 32-Bit-Wörter. Der Verschlüsselungsstandard muss dies berücksichtigen, wenn er festlegt, wie Zeichen durch Zahlen dargestellt werden.

In Computersystemen werden ganze Zahlen gespeichertSpeicherzellen in der Größe von 8 Bits (1 Byte), 16 oder 32 Bits. Jedes Unicode-Kodierungsformular bestimmt, welche Sequenz von Speicherzellen eine Ganzzahl darstellt, die einem bestimmten Zeichen entspricht. Der Standard bietet drei verschiedene Formen der Codierung von Unicode-Zeichen: 8, 16 und 32-Bit-Blöcke. Dementsprechend heißen sie utf-8, UTF-16 und UTF-32. Der Name UTF steht für das Unicode-Konvertierungsformat. Jede der drei Formen der Codierung ist ein gleiches Mittel zur Darstellung von Unicode-Zeichen, hat Vorteile in verschiedenen Anwendungen.

Diese Kodierungen können verwendet werden fürDarstellung aller Unicode-Zeichen. Somit sind sie vollständig kompatibel für Lösungen aus unterschiedlichen Gründen unter Verwendung unterschiedlicher Codierungsformen. Jede Kodierung kann ohne Verlust von Daten eindeutig in jedes der anderen zwei konvertiert werden.

utf 8 Kodierung

Prinzip der Nicht-Auferlegung

Jedes der Unicode-Kodierungsformulare ist mit entworfenunter Berücksichtigung der Unzulässigkeit teilweiser Überschneidungen. Zum Beispiel bildet Windows 932 die Zeichen aus einer oder zwei Byte-Code. Die Sequenzlänge ist abhängig von dem ersten Byte, so dass die führenden Byte-Werte in der Reihe von Zwei-Byte und einzelnen Byte disjunkt. Jedoch kann der Wert eines einzelnen Byte und nachlauf Bytefolge übereinstimmen. Dies bedeutet zum Beispiel, dass der Zeichen-Such D (Code 44) findet, kann es in den zweiten Teil der Sequenz von Zwei-Byte-Zeichen „D“ fälschlicherweise Eingabe (Code 84 44). Um festzustellen, welche Sequenz korrekt ist, muss das Programm die vorherigen Bytes berücksichtigen.

Die Situation wird komplizierter, wenn das führende und das nachfolgendeBytes werden übereinstimmen. Dies bedeutet, dass zur Umkehrung der Mehrdeutigkeit eine Rückwärtssuche bis zum Anfang des Textes oder einer eindeutigen Sequenz des Codes durchgeführt wird. Dies ist nicht nur ineffizient, sondern auch nicht gegen mögliche Fehler geschützt, da ein schlechtes Byte ausreicht, um den gesamten Text unlesbar zu machen.

Unicode-Konvertierungsformat vermeidetdieses Problems, weil die Werte der führenden, schließenden und einzelnen Informationsspeichereinheit nicht übereinstimmen. Aus diesem Grund sind alle Unicode-Kodierungen zum Suchen und Vergleichen geeignet, wobei aufgrund der Übereinstimmung verschiedener Teile des Zeichencodes niemals ein fehlerhaftes Ergebnis erhalten wird. Die Tatsache, dass diese Kodierungsformen das Prinzip der Nicht-Zuweisung beachten, unterscheidet sie von anderen Multibyte-Kodierungen in Ostasien.

Ein weiterer Aspekt der Nichtüberschneidung von Unicode-Kodierungenist, dass jedes Zeichen klar definierte Grenzen hat. Dies beseitigt die Notwendigkeit, eine unbestimmte Anzahl von vorherigen Zeichen zu scannen. Diese Eigenschaft von Codierungen wird manchmal als Selbstsynchronisation bezeichnet. Die Verzerrung einer Codeeinheit führt zur Verzerrung von nur einem Zeichen, und die umgebenden Zeichen bleiben intakt. Wenn sich der Zeiger im 8-Bit-Konvertierungsformat auf ein Byte bezieht, das mit 10xxxxxx (in Binärcodierung) beginnt, sind ein bis drei umgekehrte Übergänge erforderlich, um den Anfang des Zeichens zu finden.

Kodierung UTF 8

Konsistenz

Unicode Consortium unterstützt alle vollständig3 Formen von Kodierungen. Es ist wichtig, utf-8 und Unicode nicht zu verwerfen, da alle Konvertierungsformate gleichermaßen legale Implementierungen von Unicode-Zeichencodierungsformularen sind.

Byte-Orientierung

Um das UTF-32-Symbol darzustellen, benötigen Sie eine 32-Bit-Codeeinheit, die dem Unicode-Code entspricht. UTF-16 - von ein bis zwei 16-Bit-Einheiten. Und utf-8 verwendet bis zu 4 Bytes.

Die Codierung utf-8 wurde zur Kompatibilität mit erstelltbyte-orientierte Systeme basierend auf ASCII. Die meisten der bestehenden Software- und Informationstechnologiepraktiken haben sich lange auf die Darstellung von Symbolen in Form einer Bytefolge verlassen. Viele Protokolle hängen von der unveränderten ASCII-Codierung ab und verwenden oder vermeiden spezielle Steuerzeichen. Eine einfache Methode zur Anpassung von Unicode an solche Situationen ist die Verwendung der 8-Bit-Codierung zur Darstellung von Unicode-Zeichen, die jedem ASCII-Zeichen oder Steuerzeichen entsprechen. Dafür ist utf-8-Codierung vorgesehen.

Variable Länge

utf-8 ist eine Codierung mit variabler Länge bestehend aus8-Bit-Informationsspeichereinheiten, deren höherwertige Bits angeben, zu welchem ​​Teil der Sequenz jedes einzelne Byte gehört. Ein Wertebereich ist dem ersten Element der Codefolge zugeordnet, der andere den nachfolgenden Elementen. Dies stellt eine getrennte Codierung sicher.

Zeichencodierung utf 8

ASCII

utf-8-Codierung unterstützt vollständig ASCII-Codes(0x00-0x7F). Dies bedeutet, dass die Unicode-Zeichen U + 0000-U + 007F in ein einzelnes Byte 0x00-0x7F utf-8 konvertiert werden und somit von ASCII nicht zu unterscheiden sind. Um Mehrdeutigkeiten zu vermeiden, werden die Werte 0x00-0x7F in keinem Byte der Unicode-Zeichendarstellung mehr verwendet. Um nicht-ideographische Symbole außer ASCII zu codieren, wird eine Sequenz von zwei Bytes verwendet. Die Symbole des Bereichs U + 0800-U + FFFF sind durch drei Bytes dargestellt, und zusätzliche mit Codes größer als U + FFFF benötigen vier Bytes.

Anwendungsgebiet

Die Codierung utf-8 wird normalerweise im HTML-Protokoll und ähnlich dazu bevorzugt.

XML wurde der erste Standard mit voller UnterstützungUTF-8-Codierung. Normungsorganisationen empfehlen es auch. Unterstützung Problem in der URL-Adresse, die aus dem ASCII-Zeichen unterschiedlich ist, wurde gelöst, als das Konsortium W3C und IETF-Engineering-Gruppe zu einer Einigung über die Codierung alles URL-Adressen ausschließlich in utf-8 kamen.

Kompatibilität mit ASCII erleichtert den Übergang zu einem neuenSoftware. Mit utf-8 arbeiten die meisten Texteditoren, darunter JEdit, Emacs, BBEdit, Eclipse und Notepad des Windows-Betriebssystems. Keine andere Form der Unicode-Codierung kann sich solcher Unterstützung durch die Tools rühmen.

Der Vorteil der Codierung ist, dass esbesteht aus einer Sequenz von Bytes. Mit utf-8 Strings ist es einfach in C und anderen Programmiersprachen zu arbeiten. Dies ist die einzige Form der Codierung, bei der die Reihenfolge der BOM-Bytes oder die Kodierungsdeklaration in XML nicht markiert werden müssen.

HTML-Codierung UTF 8

Selbstsynchronisierung

In einer Umgebung mit 8-Bit-Zeichenverarbeitung hat utf-8 im Vergleich zu anderen Multi-Byte-Codierungen die folgenden Vorteile:

  • Das erste Byte der Codefolge enthält Informationen über seine Länge. Dies erhöht die Effizienz der direkten Suche.
  • Es ist einfacher, den Anfang des Zeichens zu finden, da das Anfangsbyte auf einen festen Bereich von Werten begrenzt ist.
  • Es gibt keine Kreuzung von Bytewerten.

Vergleich der Vorteile

UTF-8-Codierung ist kompakt. Bei der Kodierung von ostasiatischen Schriftzeichen (Chinesisch, Japanisch, Koreanisch, mit chinesischen Schriftzeichen) werden 3-Byte-Sequenzen verwendet. Auch die utf-8-Codierung ist anderen Formen der Codierung durch Verarbeitungsgeschwindigkeit unterlegen. Eine binäre String-Sortierung erzeugt das gleiche Ergebnis wie eine Unicode-Binärsortierung.

Zeichencodierungsschema

Das Zeichencodierungsschema besteht aus einem FormularZeichencodierung und ein Verfahren zur byteweisen Anordnung von Code-Einheiten. Um das Codierungsschema mit dem Unicode-Standard zu bestimmen, wird die Anfangs-Byte-Reihenfolge-Marke (BOM, Byte Order Mark) verwendet.

Wenn BOM in utf-8 aktiviert ist, die Label-Funktionist nur durch die Angabe der Verwendung des Kodierungsformulars begrenzt. Es gibt keine Probleme, die Reihenfolge der Bytes in utf-8 zu bestimmen, da seine Codierungseinheitsgröße ein Byte ist. Die Verwendung von BOM für dieses Kodierungsformular ist weder obligatorisch noch empfohlen. BOM kann in Texten auftreten, die aus anderen Kodierungen konvertiert wurden, die die Byte-Reihenfolge-Markierung verwenden, oder für die utf-8-Kodierungssignatur. Es ist eine Sequenz von 3 Bytes von EF16 BB16 BF16.

Datei in utf 8 Kodierung

Wie setze ich die utf-8 Kodierung ein?

In HTML wird die utf-8-Codierung mit dem folgenden Code festgelegt:

"Kopf"

˂meta http-equiv = "Inhaltstyp" content = "text / html; charset = utf-8" ˂

In PHP wird utf-8 encoding mit der Funktion header () am Anfang der Datei angegeben, nachdem der Wert der Fehlerausgabeebene festgelegt wurde:

˂? Php

error_reporting (-1);

header ("Inhaltstyp: text / html; charset = utf-8");

Für die Verbindung mit MySQL-Datenbanken wird die utf-8-Codierung wie folgt festgelegt:

˂? Php

mysql_set_charset ("utf8");

In CSS-Dateien wird die Zeichencodierung von utf-8 wie folgt angegeben:

@charset "utf-8";

Speichern als utf 8

Wenn Sie Dateien aller Typen speichern, wählen SieCodierung UTF-8 ohne BOM, sonst wird die Website nicht funktionieren. Um dies zu tun, muss Dreamweave Programm den Menüpunkt „Änderungen - Seite Eigenschaften - Titel / Encoding“ wählen, um die Kodierung UTF-8 zu ändern. Gefolgt von der Seite neu zu laden, entfernen Sie das Häkchen von „Connect Unicode-Signatur (BOM)» und die Änderungen. Wenn irgendein Text auf einer Seite oder in einer Datenbank eine andere Form der Codierung eingeführt wurde, ist es notwendig, erneut eingeben oder neu kodieren. Wenn Sie mit regulären Ausdrücken arbeiten, müssen Sie unbedingt den Modifizierer u verwenden.

Sie können die Datei auch in UTF-8-Codierung in Windows Editor speichern. Nachdem Sie den Menüeintrag "Datei - Speichern unter ..." ausgewählt haben, stellen Sie das erforderliche Kodierungsformular ein und speichern Sie die Datei in UTF-8-Kodierung.

Wenn sich die Codierung im Notepad ++ - Texteditor von utf-8 unterscheidet, ändern Sie die Codierung und speichern Sie sie in der UTF-8-Kodierung über den Menüeintrag "In utf-8 ohne BOM konvertieren".

Codierung UTF 8 ohne bom

Es gibt keine Alternative

Im Kontext der Globalisierung, wenn politisch undSprachgrenzen werden gelöscht, Sätze von Symbolen mit lokalen Eigenschaften werden weniger nützlich. Unicode ist der einzige Zeichensatz, der alle Lokalisierungen unterstützt. Und utf-8 ist ein Beispiel für die korrekte Implementierung von Unicode, die:

  • unterstützt eine breite Palette von Tools, einschließlich Kompatibilität mit ASCII-Codierung;
  • ist resistent gegen Datenkorruption;
  • einfach und effektiv in der Verarbeitung;
  • hängt nicht von der Plattform ab.

Mit dem Aufkommen der utf-8-Diskussion darüber, welche Form der Kodierung oder des Zeichensatzes besser ist, wurden sie bedeutungslos.

Lesen Sie mehr: