Bidirektionales Steuerzeichen

In Unicode sind verschiedene bidirektionale Steuerzeichen definiert, also Steuerzeichen, die die Schreibrichtung beeinflussen. Sie werden im Computersatz bei bidirektionalem Text verwendet, also bei Text, der sowohl Zeichen aus von links nach rechts geschriebenen Schriften (wie Deutsch, Englisch oder Russisch) als auch Zeichen aus von rechts nach links geschriebenen Schriften (wie Arabisch und Hebräisch) enthält.

In Unicode wird jedem Buchstaben seine Schreibrichtung zugeordnet, während etwa Satzzeichen an die Schreibrichtung des umgebenden Textes angepasst werden. Treffen nun Texte mit verschiedenen Schreibrichtungen an einem solchen Zeichen aufeinander, kann der Algorithmus, der die Schreibrichtung für die Anzeige bestimmen soll, fehlschlagen. In diesem Fall kann mit den entsprechenden Steuerzeichen der Unicode-Bidi-Algorithmus beeinflusst und die Schreibrichtung somit korrigiert werden.

Zeichencodierung

Während das Links-nach-rechts- und das Rechts-nach-links-Zeichen in verschiedenen Zeichensätzen vorhanden sind, kommen die anderen Steuerzeichen nur in Unicode vor. Bis auf das ALM aus dem Unicodeblock Arabisch befinden sich alle Zeichen im Unicodeblock Allgemeine Interpunktion.

Kodierung in Unicode
UnicodenummerBeschreibungOffizielle BezeichnungAbkürzungBedeutung
U+061C (1564)Arabisches Buchstaben-ZeichenARABIC LETTER MARKALMwird wie ein unsichtbarer arabischer Buchstabe behandelt
U+200E (8206)Links-nach-rechts-ZeichenLEFT-TO-RIGHT MARKLRMwird wie ein Buchstabe einer von links nach rechts geschriebenen Schrift behandelt
U+200F (8207)Rechts-nach-links-ZeichenRIGHT-TO-LEFT MARKRLMwird wie ein Buchstabe einer von rechts nach links geschriebenen Schrift behandelt
U+202A (8234)Links-nach-rechts-EinbettungLEFT-TO-RIGHT EMBEDDINGLREdie Grundschreibrichtung des folgenden Textes läuft von links nach rechts
U+202B (8235)Rechts-nach-links-EinbettungRIGHT-TO-LEFT EMBEDDINGRLEdie Grundschreibrichtung des folgenden Textes läuft von rechts nach links
U+202C (8236)Richtungsformatierung zurücksetzenPOP DIRECTIONAL FORMATTINGPDFbeendet die Wirkung eines der Zeichen LRE, RLE, RLO, LRO
U+202D (8237)Links-nach-rechts-ZwangLEFT-TO-RIGHT OVERRIDELROalle folgenden Zeichen werden wie Zeichen einer von links nach rechts geschriebenen Schrift behandelt
U+202E (8238)Rechts-nach-links-ZwangRIGHT-TO-LEFT OVERRIDERLOalle folgenden Zeichen werden wie Zeichen einer von rechts nach links geschriebenen Schrift behandelt
U+2066 (8294)Links-nach-rechts-IsolierungLEFT-TO-RIGHT ISOLATELRIdie Grundschreibrichtung des folgenden Textes läuft von links nach rechts, ohne dabei Zeichen außerhalb zu beeinflussen
U+2067 (8295)Rechts-nach-links-IsolierungRIGHT-TO-LEFT ISOLATERLIdie Grundschreibrichtung des folgenden Textes läuft von rechts nach links, ohne dabei Zeichen außerhalb zu beeinflussen
U+2068 (8296)Bidirektionale IsolierungFIRST STRONG ISOLATEFSIder folgende Text wird vom Rest isoliert behandelt
U+2069 (8297)Richtungsisolierung zurücksetzenPOP DIRECTIONAL ISOLATEPDIbeendet die Wirkung eines der Zeichen LRI, RLI, FSI

Das Links-nach-rechts- (LEFT-TO-RIGHT MARK), das Rechts-nach-links- (RIGHT-TO-LEFT MARK) und das arabische Buchstaben-Zeichen (ARABIC LETTER MARK) werden als implizite Steuerzeichen bezeichnet, die anderen als explizite.

Für das Links-nach-rechts- und das Rechts-nach-links-Zeichen gibt es in HTML benannte Entitäten: &lrm; und &rlm;. Die anderen Zeichen sollten gemäß einer Empfehlung des Unicode-Konsortiums auf Internetseiten nicht verwendet werden, stattdessen ist das dir-Attribut mit den Werten "ltr" oder "rtl" vorgesehen sowie die Tags <bdi> und <bdo>.[1]

Die Wirkung der expliziten Steuerzeichen kann auch mit einer Tiefe von bis zu 125 Ebenen verschachtelt werden[2], ferner endet ihre Wirkung auch ohne die Zeichen PDF bzw. PDI am Absatzende.

Textstellen, die von Steuerzeichen zum Einbetten oder Überschreiben eingefasst sind, haben auf ihre Nachbarzeichen in etwa den Einfluss von Zeichen mit der entsprechenden Schreibrichtung, während die mit Unicode 6.3 neu eingeführten Steuerzeichen zum Isolieren den eingeschlossenen Text von seiner Umgebung getrennt halten, und dieser damit auf seine Umgebung keinen Einfluss ausübt.

Beispiel

Ein arabischer Text über die Programmiersprache C++ könnte etwa (von rechts nach links) anfangen mit

C++ هي لغة برمجة تستخدم…

Das ++, das selbst keine festgelegte Schreibrichtung besitzt, steht hier zwischen dem C (ein Zeichen einer von links nach rechts geschriebenen Sprache) und dem arabischen Text. Der Webbrowser orientiert sich daher an der Hauptschreibrichtung des Absatzes und stellt das ++ damit von rechts nach links geschrieben dar, also fälschlicherweise links vom C.

Fügt man hinter dem ++ ein Links-nach-rechts-Zeichen ein, so wird das ++ von zwei Zeichen umgeben, die beide als von links nach rechts geschrieben werden, sodass der Browser auch das ++ von links nach rechts und damit rechts vom C anzeigt:

C++‎ هي لغة برمجة تستخدم…

Alternativ könnte man auch vor dem C ein LRE und hinter dem ++ ein PDF einfügen, um zu kennzeichnen, dass C++ ein in den arabischen Text eingebetteter, von links nach rechts geschriebener Begriff ist. Auch die Steuerzeichen LRI oder FSI vor und PDI nach dem C++ können verwendet werden. Die Darstellung ist in all diesen Fällen identisch; wenn der Text aber noch weitere schwache Zeichen enthalten würde, so hätte die Wahl der Steuerzeichen auch einen möglichen Einfluss auf deren Darstellung.

Weblinks

Einzelnachweise

  1. Mark Davis: UAX #9: Unicode Bidirectional Algorithm. 2.7 Markup and Formatting Characters. 14. Mai 2017, abgerufen am 29. März 2018 (englisch).
  2. Mark Davis: UAX #9: Unicode Bidirectional Algorithm. 3.1 Definitions. 14. Mai 2017, abgerufen am 29. März 2018 (englisch).