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

Umfrage: Angestellte in Deutschland unterschätzen NIS-2-Richtlinie

Fast zwei Drittel halten jedoch eine Umsetzung aller Vorgaben von NIS 2 bis Jahresende für…

8 Stunden ago

Kostenloser Dekryptor für ShrinkLocker

Mit dem Dekryptor von Bitdefender können Opfer von Attacken mit der Shrinklocker-Ransomware Dateien wiederherstellen.

22 Stunden ago

Malwarebytes warnt vor Betrugsmaschen beim Weihnachtseinkauf

In der Vorweihnachtszeit ist vor allem Malvertising auf dem Vormarsch. Cyberkriminelle locken Nutzer über schädliche…

22 Stunden ago

Bedrohungsindex: Deutliche Zunahme von Infostealern im Oktober

Dazu trägt unter der Infostealer Lumma-Stealer bei. Hierzulande dominiert der Infostealer Formbook die Malware-Landschaft.

2 Tagen ago

Chrome 131 schließt zwölf Sicherheitslücken

Eine schwerwiegende Anfälligkeit hebelt die Sicherheitsfunktion Seitenisolierung auf. Betroffen sind Chrome für Windows, macOS und…

2 Tagen ago

DeepL Voice mit KI für Sprach- übersetzungen

DeepL Voice ermöglicht Live‑Übersetzung von Meetings und Gesprächen in 13 Sprachen.

2 Tagen ago