824 Shares 9448 views

UTF-8 – Zeichencodierung

Unicode unterstützt praktisch alle vorhandenen Zeichensätze. Die beste Form der Codierung Unicode-Zeichensatz ist UTF-8-Codierung. Es unterstützt die Kompatibilität mit ASCII, Widerstand zu einer Verzerrung der Daten, die Effizienz und die Einfachheit der Verarbeitung. Aber das Wichtigste zuerst.

Codierung Form

Computer arbeiten nicht nur als Zahlen abstrakte mathematische Objekte, sowie die Kombinationen von Einheiten der Lagerung und Handhabung fester Größe Daten – Byte und 32-Bit-Worte. Encoding Standard muss dies berücksichtigen , wenn die Bestimmung , wie präsentiert die Anzahl der Zeichen.

In Computersystemen, die in den Speicherzellen von 8 Bit (1 Byte), 16 oder 32 Bit die ganzen Zahlen gespeichert. Jedes Formular definiert eine Unicode-Codierung, die Folge von Speicherzellen eine ganze Zahl mit einem bestimmten Symbol entspricht. In der Norm gibt es drei verschiedene Formen der Codierung Unicode Zeichen 8, 16 und 32-Bit-Blöcke. Dementsprechend sind sie als UTF-8, UTF-16 und UTF-32 bekannt. Name UTF steht für Unicode Transformation Format. Jede der drei Formen der Codiereinrichtung gleich Darstellung Unicode-Zeichen haben Vorteile in verschiedenen Anwendungen.

Die Datenverschlüsselung kann verwendet werden, um alle Zeichen in dem Unicode-Standard darzustellen. Somit sind sie voll kompatibel zu Lösungen für eine Vielzahl von Gründen, unter Verwendung verschiedene Formen der Codierung. Jede Codierung eindeutig in eine der beiden anderen, ohne Verlust von Daten umgewandelt werden.

nenalozheniya Prinzip

Jede der Formen Unicode-Codierung im Hinblick auf die nicht teilweise überlappend entwickelt. 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 herauszufinden, welche Sequenz korrekt ist, sollte das Programm berücksichtigt das vorherige Bytes.

Die Situation ist kompliziert, wenn die vorderen und hinteren Bytes übereinstimmen. Dies bedeutet, dass, um die Mehrdeutigkeit zu entfernen wird ein Reverse-Lookup sein, bevor Sie den Anfang des Textes oder der eindeutigen Codesequenz zu erreichen. Dies ist nicht nur ineffizient, ist aber nicht von möglichen Fehlern geschützt, da nur eine falsche Byte auf den Volltext ist nicht mehr gelesen werden.

Formatkonvertierung Unicode vermeidet dieses Problem, da der Wert der vorangestellten und eine einzige Speichereinheit nicht die gleichen Informationen sind. Dadurch wird sichergestellt, dass alle Unicode für die Suche und den Vergleich, nie fehlerhafte Ergebnisse aufgrund der Koinzidenz von verschiedenen Teilen des Zeichencodes zu geben. Die Tatsache, dass diese Formen der Codierung des Prinzips nenalozheniya beobachten, unterscheidet sie von anderen ostasiatischen Multi-Byte-Codierungen.

Ein weiterer Aspekt nonintersection Unicode – Codierung ist , dass jedes Zeichen eine klar definierte Grenze hat. Dadurch entfällt die Notwendigkeit, eine unbestimmte Anzahl von vorherigen Symbolen zu scannen. Diese Funktion wird manchmal selbsttaktenden Codierung genannt. Verzerrung der Codeeinheiten wird eine Verzerrung von nur ein Zeichen, und die umgebenden Zeichen sind noch intakt einzuführen. In der 8-Bit-Format Konvertierung, wenn der Zeiger auf das Byte mit 10xxxxxx beginnend (in Binärcode) der Start des Symbols zu finden, ist für eine bis drei Rückwärtsgänge erforderlich.

Konsistenz

Unicode Consortium unterstützt alle 3 Formen von Kodierungen. Es ist wichtig, nicht den UTF-8 und Unicode, da alle Konvertierungsformate entgegenzutreten – gleichermaßen gültige Formen der Ausführungsform des Unicode Zeichencodierungsstandard.

Byte-Ausrichtung

Darzustellen UTF-32 Zeichen müssen eine 32-Bit-Code-Einheit, die mit dem Unicode-Code übereinstimmt. UTF-16 – 1.59 16-Bit-Einheiten. Ein UTF-8 verwendet, um 4 Bytes auf.

UTF-8-Codierung ist so konzipiert, mit byteorientierten ASCII-basierten Systemen kompatibel zu sein. Die meisten der vorhandenen Software und Praxis der Informationstechnologie für eine lange Zeit stützte sich auf die Darstellung von Zeichen in einer Folge von Bytes. Mehrere Protokolle hängen von der Konstanz der ASCII – Kodierung und verwenden entweder vermeiden das spezielle Steuerzeichen. Ein einfacher Weg, um Situationen anzupassen Unicode können, unter Verwendung von 8-Bit-Codierung für die Darstellung von Unicode-Zeichen, ein gleichwertiges ASCII-Zeichen oder ein Steuerzeichen. Zu diesem Zweck, und es ist UTF-8-Codierung.

variabler Länge

UTF-8 – Codierung mit variabler Länge, bestehend aus 8-Bit-Speichereinheiten, die oberen Bits, die angeben, auf denen einen Teil der Sequenz jeden einzelnen Byte gehört. Eine Reihe von Werten an das erste Element des Codesequenz zugeordnet wird, ein anderer – für die nächste. Dies stellt Disjunktheit Codierung.

ASCII

UTF-8-Codierung wird vollständig unterstützt ASCII-Codes (0x00-0x7F). Dies bedeutet, dass das Unicode-Zeichen U + 0000-U + 007F in einzelnen Byte 0x00-0x7F UTF-8 umgewandelt werden und somit ununterscheidbar von ASCII. Darüber hinaus, um Mehrdeutigkeit zu vermeiden, 0x00-0x7F der Wert nicht mehr in einer einzigen Byte-Darstellung von Unicode-Zeichen verwendet. Zu kodieren Symbole neideograficheskih andere als ASCII, eine Folge von zwei Bytes verwendet. Symbole Bereich U + 0800-U + FFFF durch drei Bytes dargestellt werden, und zusätzliche Codes mit mehr als U + FFFF erfordern vier Bytes.

Anwendungsgebiet

UTF-8-Codierung in der Regel bevorzugt, im HTML-Protokoll gegeben, und dergleichen.

XML ist der erste Standard mit voller Unterstützung für UTF-8-Codierung werden. Normungsorganisationen empfehlen es auch. Support 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 kamen URL – Adressen ausschließlich in UTF-8.

Kompatibilität mit ASCII erleichtert den Übergang zu der neuen Software. Mit UTF-8 arbeitet meisten Texteditoren, einschließlich JEdit, Emacs, BBEdit, Eclipse und "Notepad" das Windows-Betriebssystem. Keine andere Form der Codierung Unicode kann nicht bieten eines solchen Trägers des Werkzeugs.

Vorteil Codierung ist, dass es aus einer Folge von Bytes besteht. Mit UTF-8-String ist einfach in C und anderen Programmiersprachen zu arbeiten. Dies ist die einzige Form der Codierung, die um Etiketten erfordert kein Bytes BOM oder eine Codierungsdeklaration in XML.

Selbstsynchronisation

In einer Umgebung, die 8-Bit-Symbole der Verarbeitung verwendet, verglichen mit anderen Multi-Byte-Zeichensätzen, UTF-8 hat die folgenden Vorteile:

  • Die erste Byte-Codesequenz enthält Informationen über seine Länge. Dies erhöht die Effizienz der Direktsuche.
  • Vereinfacht den Beginn des Symbols zu finden, da das Startbyte auf einen festen Bereich von Werten begrenzt ist.
  • Keine Kreuzung Byte-Werte.

Vergleichen Sie die Vorteile

UTF-8-Codierung ist kompakt. Aber wenn für die Codierung von ostasiatischer Zeichen verwendet (Chinesisch, Japanisch, Koreanisch, Chinesisch Schreiben Zeichen verwendet wird) verwendet 3-Byte-Sequenzen. Auch UTF-8-Codierung ist schlechter als andere Formen der Verarbeitungsgeschwindigkeit Codierung. Eine binäre Sortierlinien erzeugt das gleiche Ergebnis wie die binäre Sortier Unicode.

Das Zeichencodierungsschema

Das Zeichencodierungsschema umfasst Codierung Symbole Form und ein Verfahren zur einzelnen Byte Ortscodeeinheiten. Zur Bestimmung des Codierschema Unicode-Standard bietet die Verwendung einer ersten Bytereihenfolgemarkierung (BOM, Bytereihenfolgemarkierung).

Wenn die BOM in UTF-8-Feature-Tag wird nur durch Bezugnahme auf die Verwendung von Formen beschränkt Kodierung. Probleme in die endian UTF-8 Bestimmung haben, wie die Codiereinheit Größe ein Byte ist. Mit Hilfe der Stückliste für diese Form der Codierung ist weder erforderlich noch empfohlen. Verwendung Bytereihenfolgemarkierung oder Signatur für UTF-8-Codierung BOM kann im Text auftreten, um von anderen Codierungen umgewandelt werden. Ist eine Sequenz von 3 Bytes EF BB 16 16 BF 16.

Wie die UTF-8-Kodierung eingestellt

Die HTML – Codierung UTF-8 wird mit dem folgenden Code installiert:

Kopf

Meta http-equiv = "Content-Type" content = "text / html; charset = utf-8" ˃

Verwendung des Header () Funktion zu Beginn der Datei, in PHP UTF-8-Kodierung festgelegt ist, nachdem die Ausgangspegelwert Fehlereinstellung:

˂? Php

error_reporting (-1);

header ( „Content-Type: text / html; charset = utf-8‚);

Um eine Verbindung zu einer MySQL-Datenbank UTF-8-Kodierung ist gesetzt:

˂? Php

mysql_set_charset ( 'utf8');

Die CSS-Datei-Kodierung ist UTF-8-Zeichen wird wie folgt angegeben:

@charset "UTF-8";

Wenn Sie die Dateien aller Art UTF-8-Kodierung ohne BOM speichern wählen, sonst wird die Website nicht. Um dies zu tun in Dreamweave müssen Sie 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 den Modifikator u verwenden.

Sie können auch die Datei in UTF-8-Codierung im „Notepad“ von Windows speichern. „- Speichern unter … Datei“, um die notwendige Form der Codierung zu installieren und die Datei in UTF-8 speichern Sie den Menüpunkt Nach Auswahl.

In einem Texteditor Notepad ++, wenn als UTF-8 andere gesetzt, über den Menüpunkt „Convert to UTF-8 ohne BOM» den Charakter ändern und in UTF-8 speichern.

gibt es keine Alternative

Im Zusammenhang mit der Globalisierung, in denen politische und sprachlichen Grenzen gelöscht werden, wird die Zeichensätze, die lokalen Eigenschaften haben, sind von geringen Nutzen. Unicode ist ein einziger Zeichensatz, der alle Lokalisationen unterstützt. A UTF-8 – ein Beispiel für die korrekte Umsetzung von Unicode, welche ist:

  • Es unterstützt eine breite Palette von Werkzeugen, einschließlich der Kompatibilität mit ASCII-Codierung;
  • Es ist resistent gegen Verzerrungsdaten;
  • einfach und wirkungsvoll bei der Behandlung;
  • ist plattformunabhängig.

Mit dem Aufkommen der UTF-8 Debatte darüber, welche Form der Codierung oder Zeichensatz ist besser, wird es bedeutungslos.