Akzente setzen mit COMPOSE und UNISTR

Mit zwei Funktionen lassen sich bei Oracle Umlaute und Akzente einfach zusammensetzen. Dies spart umständliches nachschlagen beziehungsweise die Verwendung eines Unicode-Editors.

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(‚a300‘) 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:


Themenseiten: Anwendungsentwicklung, Software

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

Noch keine Kommentare zu Akzente setzen mit COMPOSE und UNISTR

Kommentar hinzufügen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *