Akzente setzen mit COMPOSE und UNISTR

Viele Sprachen verwenden Zeichen mit Akzenten. Da diese Zeichen nicht im ASCII-Zeichensatz enthalten sind, ist es schwierig, Code zu schreiben, der solche Zeichen enthält, ohne die entsprechenden Unicode-Werte nachzuschlagen oder einen Unicode-Editor zu verwenden.

Oracle9i hat die Funktion COMPOSE eingeführt, mit der man einen Text aus mehreren Unicode-Zeichen zusammensetzen kann. Das bedeutet, dass die Funktion einen Buchstaben wie „a“ (Unicode-Zeichen 0097) und ein damit zu kombinierendes Zeichen wie den Gravis-Akzent (Unicode-Zeichen 0300) übernimmt und daraus ein einzelnes Zeichen erzeugt, das die Kombination der beiden Bestandteile ist.

COMPOSE verwendet spezielle Kombinationszeichen, die Bestandteil des Unicode-Standards sind, statt der entsprechenden Interpunktionszeichen aus dem ASCII-Zeichensatz. Das Ergebnis sollte Unicode-Zeichen 00E0 sein (ein kleines „a“ mit einem Gravis-Akzent).

Die gängigsten Kombinationszeichen in Unicode sind:

  • U+0300: Gravis-Akzent ( ` )
  • U+0301: Akut-Akzent ( ‚ )
  • U+0302: Zirkumflex-Akzent (^)
  • U+0303: Tilde (~)
  • U+0308: Umlaut

Oft ist es schwierig, Unicode-Zeichen ohne spezielle Software oder Tastaturtreiber über die Tastatur einzugeben. Daher kann man die Unicode-Sequenz in reinem ASCII-Text mithilfe der Funktion UNISTR eingeben. Diese Funktion übernimmt eine Reihe von ASCII-Zeichen und erzeugt daraus eine Sequenz aus Unicode-Zeichen im nationalen Zeichensatz (welcher normalerweise entweder als 16-Bit-Unicode oder UTF-8 installiert ist). Ähnlich wie Java verwendet sie hexadezimale Escape-Sequenzen, um alle Nicht-ASCII-Zeichen zuzuordnen.

Um die Sequenz für „a“ gefolgt vom Kombinationszeichen für den Gravis-Akzent einzugeben, kann man UNISTR(‚a 300‘) verwenden, anstatt das Zeichen direkt in den Code einzufügen. Diese Funktion arbeitet korrekt mit jedem Zeichensatz und jeder Datenbank, die über einen Unicode-basierten nationalen Zeichensatz verfügt. Man kann der UNISTR-Funktion mehr als ein Kombinationszeichen übergeben oder eine Mischung aus ASCII- und Unicode-Escape-Sequenzen verwenden. Ein Beispiel:

Wenn man das Ergebnis dieser Funktion mit COMPOSE kombiniert, kann man ein Unicode-Zeichen erzeugen, ohne jeden einzelnen Wert nachschlagen zu müssen:

Page: 1 2

ZDNet.de Redaktion

Recent Posts

Erreichbarkeit im Weihnachtsurlaub weiterhin hoch

Nur rund die Hälfte schaltet während der Feiertage komplett vom Job ab. Die anderen sind…

15 Stunden ago

Hacker missbrauchen Google Calendar zum Angriff auf Postfächer

Security-Experten von Check Point sind einer neuen Angriffsart auf die Spur gekommen, die E-Mail-Schutzmaßnahmen umgehen…

2 Tagen ago

Bedrohungen in Europa: Schwachstellen in der Lieferkette dominieren

Hinter 84 Prozent der Zwischenfälle bei Herstellern stecken Schwachstellen in der Lieferkette. Auf dem Vormarsch…

2 Tagen ago

Bericht: Apple arbeitet an faltbarem iPad

Es kommt angeblich 2028 auf den Markt. Das aufgeklappte Gerät soll die Displayfläche von zwei…

3 Tagen ago

HPE baut Supercomputer am Leibniz-Rechenzentrum

Das System basiert auf Hardware von HPE-Cray und Nvidia. Die Inbetriebnahme erfolgt 2027.

3 Tagen ago

Bund meldet Fortschritte in der Netzversorgung

Die Bundesnetzagentur hat ihr Gigabit-Grundbuch aktualisiert. Drei von vier Haushalten sollen jetzt Zugang zu Breitbandanschlüssen…

3 Tagen ago