Der Unicode-Standard ist ein Universalschema für Codeumsetzung für geschriebene Zeichen und Text. Es definiert einen Zeichensatz sowie eine kleine Anzahl Codierungen für diesen Zeichensatz sehr genau. Dieser Standard definiert eine konsistente Methode für das Codieren von mehrsprachigen Texten, die den internationalen Austausch von Textdaten ermöglicht und die Grundlage für globale Software erstellt.
Zwei der von Unicode bereitgestellten Schemata für Codeumsetzung sind UTF-16 und UTF-8.
Das Standardschema für Codeumsetzung ist UTF-16, ein 16-Bit-Codierformat. UCS-2 ist eine Untergruppe von UTF-16 und verwendet für die Darstellung der einzelnen Zeichen jeweils 2 Byte. UCS-2 ist allgemein als Universal-Codepage anerkannt, die alle erforderlichen Zeichen aller vorhandenen SBCS- und DBCS-Codepages darstellen kann. UCS-2 ist bei IBM als Codepage 1200 registriert.
Das zweite Unicode-Codierformat ist UTF-8. Dieses Format ist byteorientiert und wurde für den benutzerfreundlichen Einsatz mit vorhandenen ASCII-basierten Systemen konzipiert. UTF-8 verwendet eine unterschiedliche Anzahl Bytes (idR. 1-3, manchmal 4) zum Speichern der einzelnen Zeichen. Die unveränderlichen ASCII-Zeichen werden als einzelne Bytes gespeichert. Alle anderen Zeichen werden mit mehreren Bytes gespeichert. Im Allgemeinen können UTF-Daten von Code, der nicht für Mehrbytecodepages konzipiert wurde, wie erweiterte ASCII-Daten behandelt werden. UTF-8 ist bei IBM als Codepage 1208 registriert.
Bei der Konvertierung von Daten zwischen der lokalen Codepage und den Codepages UCS-2 und UTF-8 müssen Anwendungen die Anforderungen der Daten berücksichtigen. In UCS-2 beispielsweise sind für 20 Zeichen genau 40 Bytes erforderlich und in UTF-8 abhängig von der Originalcodepage und den verwendeten Zeichen 20-60 Bytes.
Eine Datenbank unter DB2 Universal Database für UNIX, Windows oder OS/2, die mit dem codierten Zeichensatz UTF-8 erstellt wurde, kann Daten sowohl im UCS-2-Format als auch im UTF-8-Format speichern. Eine solche Datenbank wird als Unicode-Datenbank bezeichnet. SQL-Zeichendaten werden mit UTF-8 verschlüsselt, SQL-Grafikdaten mit UCS-2. Dies bedeutet, dass MBCS-Zeichen, einschließlich Einzelbyte- und Doppelbytezeichen, in Zeichenspalten und DBCS-Zeichen in Grafikspalten gespeichert werden.
Die Codepage einer Anwendung stimmt möglicherweise nicht mit der Codepage überein, in der DB2 Daten speichert. Stimmen die Codepages bei einer Nicht-Unicode-Datenbank nicht überein, konvertiert der Datenbankmanager Zeichen- und Grafikdaten (reine DBCS-Daten), die zwischen dem Client und dem Server übertragen werden. In einer Unicode-Datenbank konvertiert der Datenbankmanager die Zeichendaten automatisch zwischen der Client-Codepage und UTF-8, aber alle Grafikdaten (UCS-2) werden ohne Konvertierung zwischen dem Client und dem Server übertragen.
Abbildung 1. Vom Datenbankmanager durchgeführte Codepage-Konvertierungen
Anmerkungen:
Eine Anwendung kann als Codepage UTF-8 angeben, d. h. diese Anwendung sendet und empfängt Grafikdaten im UCS-2-Format und Zeichendaten im UTF-8-Format. Diese Anwendungs-Codepage wird nur für Unicode-Datenbanken unterstützt.
Außerdem müssen die folgenden Punkte bei der Verwendung von Unicode berücksichtigt werden:
CREATE DATABASE unidb USING CODESET UTF-8 TERRITORY US
db2set DB2CODEPAGE=1208
SELECT * FROM meintab WHERE meinzeich = 'utf-8-daten' AND meingraf = G'ucs-2-daten'
Dieses Release-Informationen enthalten Aktualisierungen der folgenden Informationen zur Verwendung von Unicode mit DB2 Version 7.1:
Kapitel 3, Language Elements
Kapitel 4, Functions
|Kapitel 6, SQL Statements
Kapitel 3, Using Advanced Features
Anhang C, DB2 CLI and ODBC
Weitere Informationen zur Verwendung von Unicode mit DB2 finden Sie im entsprechenden Abschnitt des Anhangs zur Unterstützung von Landessprachen im Handbuch Systemverwaltung.