Release-Informationen


43.1 Einführung

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.

43.1.1 DB2-Unicode-Datenbanken und -Anwendungen

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

Vom Datenbankmanager ausgeführte Codepage-Konvertierungen

Anmerkungen:

  1. Gibt eine Anwendung beim Herstellen einer Verbindung zu einer Unicode-Datenbank DB2CODEPAGE=1208 an, wird als lokale Codepage UTF-8 verwendet, d. h. es ist keine Codepage-Konvertierung erforderlich.

  2. Bei Verbindungen zu einer Unicode-Datenbank können Anwendungen der Befehlszeilenschnittstelle Zeichendaten als Grafikdaten empfangen und umgekehrt.

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:

  1. Die Datenbank-Codepage wird zum Zeitpunkt der Datenbankerstellung festgelegt und standardmäßig aus den Ländereinstellungen (bzw. der Codepage) des Betriebssystems abgeleitet. Die Schlüsselwörter CODESET und TERRITORY können verwendet werden, um explizit eine Unicode-DB2-Datenbank zu erstellen. Beispiel:
    CREATE DATABASE unidb USING CODESET UTF-8 TERRITORY US
    
  2. Standardmäßig wird als Anwendungs-Codepage ebenfalls die lokale Codepage verwendet; diese Einstellung kann aber mit zwei Methoden in UTF-8 geändert werden:

    
    
  3. Bei Daten in GRAPHIC-Spalten wird jedes Unicode-Zeichen durch genau zwei Bytes dargestellt, während für Daten in CHAR-Spalten für jedes Unicode-Zeichen 1-3 Bytes benötigt werden. Bei SQL dürfen für GRAPHIC-Spalten idR. halb so viele Zeichen wie in CHAR-Spalten verwendet werden, aber in Bezug auf Bytes werden beide Spaltentypen gleich behandelt. Die maximale Zeichenlänge für eine CHAR-Spalte ist 254, und die maximale Länge für eine Grafikspalte ist 127. Weitere Informationen finden Sie unter MAX im Kapitel "Funktionen" des Handbuchs SQL Reference.
    
    
  4. Die Differenzierung zwischen Grafikliteralen und Zeichenliteralen erfolgt durch die Angabe des Präfix G für Grafikliterale. Beispiel:
    SELECT * FROM meintab WHERE meinzeich = 'utf-8-daten' AND meingraf = G'ucs-2-daten'
    

    Anmerkung:
    Bei Unicode-Datenbanken ist das Präfix G optional.

    Weitere Informationen und aktuelle Angaben zur Unterstützung finden Sie in 40.6.2.4, "Literals in Unicode Databases".

    
    
  5. Die Unterstützung von CLI/ODBC- und JDBC-Anwendungen unterscheidet sich von der Unterstützung für eingebettete Anwendungen. Informationen zur CLI/ODBC-Unterstützung finden Sie in "CLI Guide and Reference".
    
    
  6. Die Bytereihenfolge von UCS-2-Daten kann je nach Plattform unterschiedlich sein. Intern verwendet DB2 das Big-Endian-Format.

43.1.2 Aktualisierung der Dokumentation

Dieses Release-Informationen enthalten Aktualisierungen der folgenden Informationen zur Verwendung von Unicode mit DB2 Version 7.1:

Weitere Informationen zur Verwendung von Unicode mit DB2 finden Sie im entsprechenden Abschnitt des Anhangs zur Unterstützung von Landessprachen im Handbuch Systemverwaltung.


[ Seitenanfang | Vorherige Seite | Nächste Seite | Inhaltsverzeichnis | Index ]