## Unicode

Unicode ist ein internationaler Standard-Zeichensatz. Im Unicode-Zeichensatz können alle in Alphabeten verwendeten Zeichen eindeutig ausdrückt werden. Der Zeichensatz ASCII ist dagegen nur für den amerikanischen und zentraleuropäischen Sprachraum gut geeignet.

Das Datenbanksystem MaxDB unterstützt Unicode gemäß ISO 10646. Intern legt das Datenbanksystem Unicode-Daten im UTF-16/UCS-2-Format ab. Hierfür benötigt es doppelt so viel Speicherplatz wie für eine Ablage von Daten im Format ASCII, weil die Kodierung mit 16 anstatt mit 8 Bit erfolgt.

Sie können Unicode in einer MaxDB-Datenbankinstanz für den Datenbankkatalog und für Anwendungsdaten verwenden.

● Datenbankkatalog:

Um die Namen von Datenbankobjekten, wie z. B. Tabellen- und Spaltennamen, in Unicode zu speichern, setzen Sie beim Anlegen der Datenbankinstanz den speziellen Datenbankparameter _UNICODE auf YES.

Sie können diesen Datenbankparameter später nicht mehr ändern.

● Anwendungsdaten:

Um die Anwendungsdaten in einer Spalte des Typs CHAR, VARCHAR oder LONG in Unicode zu speichern, wählen Sie für das Codeattribut der Spalte den Wert UNICODE.

Um UNICODE als Vorschlagswert für das Codeattribut aller Spalten der Datentypen CHAR, VARCHAR und LONG zu konfigurieren, wählen Sie für den speziellen Datenbankparameter DEFAULT_CODE den Wert UNICODE.

Um das Codeattribut einer bereits mit Daten gefüllten Spalte nachträglich zu ändern, müssen folgende Bedingungen erfüllt sein:

○ ASCII -> Unicode: Alle Werte in der Spalte passen auch nach der Konvertierung noch in diese Spalte (Unicode-Daten benötigen doppelt so viel Platz wie ASCII-Daten).

○ Unicode -> ASCII: Alle Werte der Spalte enthalten nur solche Zeichen, die es auch im ASCII-Zeichensatz gibt.

Welche Datenbankwerkzeuge unterstützen Unicode?

Datenbankwerkzeug | unterstützt Unicode *
Database Manager | ja
Loader | ja
SQL Studio | eingeschränkt (siehe SQL Studio, Unicode-Unterstützung)
SQLCLI | nein
Synchronization Manager | ja
Web SQL | ja
XUSER | eingeschränkt (Sie können Benutzernamen und Kennwörter in Unicode nur mit der Option -b aus einer Datei in XUSER einlesen, aber nicht direkt auf der Kommandozeile angeben)

* Beachten Sie bei Kommandozeilenprogrammen, dass die Kommandozeilenumgebung ebenfalls Unicode unterstützen muss.

Welche Schnittstellen unterstützen Unicode?

Schnittstelle | unterstützt Unicode
JDBC | ja
ODBC | ja
Perl | ja
PHP | nein
Python | eingeschränkt (die Module sdb.dbm und sdb.loader unterstützen Unicode momentan noch nicht)
SQLDBC | ja
WebDAV | ja

Siehe auch:

Konzepte des Datenbanksystems,

● Datenbankinstanz planen

● Spezielle Datenbankparameter

Referenzhandbuch, Codeattribut