Freigeben über


Unicode

Unicode ist ein weltweiter Zeichencodierungsstandard. Das System verwendet Unicode ausschließlich für Zeichen- und Zeichenfolgenmanipulation. Eine ausführliche Beschreibung aller Aspekte von Unicode finden Sie unter Unicode Standard.

Im Vergleich zu älteren Mechanismen zum Behandeln von Zeichen- und Zeichenfolgendaten vereinfacht Unicode die Softwarelokalisierung und verbessert die mehrsprachige Textverarbeitung. Mithilfe von Unicode zum Darstellen von Zeichen- und Zeichenfolgendaten in Ihren Anwendungen können Sie universelle Datenaustauschfunktionen für das globale Marketing mithilfe einer einzelnen Binärdatei für jeden möglichen Zeichencode aktivieren. Unicode führt folgende Aktionen aus:

  • Ermöglicht eine beliebige Kombination von Zeichen, die aus einer beliebigen Kombination von Skripts und Sprachen gezeichnet werden, in einem einzelnen Dokument koexistieren zu können.
  • Definiert die Semantik für jedes Zeichen.
  • Standardisiert das Skriptverhalten.
  • Stellt einen Standardalgorithmus für bidirektionalen Text bereit.
  • Definiert Querzuordnungen zu anderen Standards.
  • Definiert mehrere Codierungen des einzelnen Zeichensatzes: UTF-7, UTF-8, UTF-16 und UTF-32. Die Konvertierung von Daten zwischen diesen Codierungen ist verlustfrei.

Unicode unterstützt zahlreiche Skripts, die von Sprachen auf der ganzen Welt verwendet werden, und auch eine große Anzahl von technischen Symbolen und Sonderzeichen, die bei der Veröffentlichung verwendet werden. Zu den unterstützten Skripts gehören, aber nicht beschränkt auf Latein, Griechisch, Kyrillisch, Hebräisch, Arabisch, Devanagari, Thai, Han, Hangul, Hiragana und Katakana. Unterstützte Sprachen sind u. a. Deutsch, Französisch, Englisch, Griechisch, Russisch, Hebräisch, Arabisch, Hindi, Thailändisch, Chinesisch, Koreanisch und Japanisch. Unicode kann derzeit die überwiegende Mehrheit der Zeichen in der modernen Computerverwendung auf der ganzen Welt darstellen und wird weiterhin aktualisiert, um es noch vollständiger zu machen.

Unicode-fähige Funktionen werden in Konventionen für Funktionsprototypenbeschrieben. Diese Funktionen verwenden UTF-16-Codierung (breite Zeichen), die die am häufigsten verwendete Codierung von Unicode und die für systemeigene Unicode-Codierung auf Windows-Betriebssystemen verwendet wird. Jeder Codewert ist 16 Bit breit, im Gegensatz zu der älteren Codepage Ansatz für Zeichen- und Zeichenfolgendaten, die 8-Bit-Codewerte verwendet. Die Verwendung von 16 Bit ermöglicht die direkte Codierung von 65.536 Zeichen. Tatsächlich ist das Universum von Symbolen, die zum Transkribieren von menschlichen Sprachen verwendet werden, sogar größer als das, und UTF-16-Codepunkte im Bereich U+D800 bis U+DFFF werden verwendet, um Surrogatepaare zu bilden, die 32-Bit-Codierungen von ergänzenden Zeichen bilden. Weitere Erläuterungen finden Sie unter Surrogaten und Zusatzzeichen.

Der Unicode-Zeichensatz enthält zahlreiche kombinierte Zeichen, z. B. U+0308 (" μ"), eine kombinierte Dieresis oder Umlaute. Unicode kann häufig dieselbe Glyphe in einem ''zusammengesetzten'' oder einem ''dekomponierten''-Formular darstellen: Die zusammengesetzte Form von "Ä" ist z. B. der einzelne Unicode-Codepunkt "Ä" (U+00C4), während die dekompilierte Form "A" + " μ" ist (U+0041 U+0308). Unicode definiert kein zusammengesetztes Formular für jede Glyphe. Beispielsweise wird das vietnamesische Kleinbuchstaben "o" mit Zirkumflex und Tilde ("ỗ") durch U+006f U+0302 U+0303 (o + Zirkumflex + Tilde) dargestellt. Weitere Informationen zum Kombinieren von Zeichen und verwandten Problemen finden Sie unter Verwenden der Unicode-Normalisierung zur Darstellung von Zeichenfolgen.

Aus Gründen der Kompatibilität mit 8-Bit- und 7-Bit-Umgebungen kann Unicode auch als UTF-8 und UTF-7 codiert werden. Während Unicode-fähige Funktionen in Windows UTF-16 verwenden, ist es auch möglich, mit Daten zu arbeiten, die in UTF-8 oder UTF-7 codiert sind, die in Windows als Multibyte-Zeichensatz Codeseitenunterstützt werden.

Neue Windows-Anwendungen sollten UTF-16 als interne Datendarstellung verwenden. Windows bietet auch umfangreiche Unterstützung für Codeseiten, und die gemischte Verwendung in derselben Anwendung ist möglich. Auch neue Unicode-basierte Anwendungen müssen manchmal mit Codeseiten arbeiten. Gründe hierfür werden in Code pageserläutert.

Eine Anwendung kann die MultiByteToWideChar- und WideCharToMultiByte- funktionen verwenden, um zwischen Zeichenfolgen basierend auf Codeseiten und Unicode-Zeichenfolgen zu konvertieren. Obwohl ihre Namen auf "MultiByte" verweisen, funktionieren diese Funktionen gleichermaßen gut mit Single-Byte-Zeichensatz (SBCS), Doppelbyte-Zeichensatz (DBCS) und MbCS-Codeseiten (Multibyte Character Set).

In der Regel sollte eine Windows-Anwendung UTF-16 intern verwenden und nur als Teil einer "dünnen Ebene" über die Schnittstelle konvertieren, die ein anderes Format verwenden muss. Diese Technik schützt vor Verlust und Beschädigung von Daten. Jede Codeseite unterstützt unterschiedliche Zeichen, aber keiner von ihnen unterstützt das gesamte Spektrum von Zeichen, die von Unicode bereitgestellt werden. Die meisten Codeseiten unterstützen unterschiedliche Teilmengen, anders codiert. Die Codeseiten für UTF-8 und UTF-7 sind eine Ausnahme, da sie den vollständigen Unicode-Zeichensatz unterstützen und die Konvertierung zwischen diesen Codierungen und UTF-16 verlustfrei ist.

Daten, die direkt aus der von einer Codeseite verwendeten Codierung in die von einem anderen verwendete Codierung konvertiert werden, unterliegen Beschädigungen, da derselbe Datenwert auf verschiedenen Codeseiten ein anderes Zeichen codieren kann. Auch wenn Ihre Anwendung so nah wie möglich an der Schnittstelle konvertiert wird, sollten Sie sorgfältig über den zu verarbeitenden Datenbereich nachdenken.

Daten, die von Unicode in eine Codeseite konvertiert werden, unterliegen Datenverlust, da eine bestimmte Codeseite möglicherweise nicht in der Lage ist, jedes zeichen darzustellen, das in diesen bestimmten Unicode-Daten verwendet wird. Beachten Sie daher, dass WideCharToMultiByte- möglicherweise einige Daten verlieren, wenn die Zielcodeseite nicht alle Zeichen in der Unicode-Zeichenfolge darstellen kann.

Wenn Sie Codeseitenbasierte Legacyanwendungen für die Verwendung von Unicode modernisieren, können Sie generische Funktionen und das TEXT Makro verwenden, um eine einzelne Gruppe von Quellen zu verwalten, aus denen zwei Versionen Ihrer Anwendung kompiliert werden sollen. Eine Version unterstützt Unicode und das andere mit Windows-Codeseiten. Mit diesem Mechanismus können Sie sogar sehr große Anwendungen von Windows-Codeseiten in Unicode konvertieren und Anwendungsquellen verwalten, die in allen Phasen der Konvertierung kompiliert, erstellt und getestet werden können. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.

Unicode-Zeichen und Zeichenfolgen verwenden Datentypen, die sich von denen für codeseitige Zeichen und Zeichenfolgen unterscheiden. Zusammen mit einer Reihe von Makros und Benennungskonventionen minimiert diese Unterscheidung die Wahrscheinlichkeit, versehentlich die beiden Arten von Zeichendaten zu mischen. Es erleichtert die Compilertypüberprüfung, um sicherzustellen, dass nur Unicode-Parameterwerte mit Funktionen verwendet werden, die Unicode-Zeichenfolgen erwarten.

Zeichensätze

Sortierung

Surrogate und Zusatzzeichen

Verwenden der Unicode-Normalisierung zur Darstellung von Zeichenfolgen