Unicode-Casing-AlgorithmusDer Unicode-Standard beinhaltet verschiedene Algorithmen, die die Groß- und Kleinschreibung (englisch case) betreffen, die Unicode-Casing-Algorithmen. Diese Algorithmen erlauben es, Texte in eine andere Schreibweise zu überführen (etwa alle Buchstaben in Kleinbuchstaben verwandeln), festzustellen, ob ein Text in einer bestimmten Schreibweise vorliegt (beispielsweise vollständig in Großschreibung), und zwei Texte unabhängig von ihrer Schreibweise auf Gleichheit zu überprüfen. Die Algorithmen erlauben teilweise eine Anpassung an die verwendete Sprache. So ist in den meisten Sprachen der zum kleinen GrundlagenEs gibt drei verschiedene Schreibweisen, die einen speziellen Namen haben: Die Kleinschreibung, bei der alle Buchstaben als Kleinbuchstaben vorliegen, die Großschreibung, bei der alle Buchstaben als Großbuchstaben vorliegen, und die Titelschreibung, bei der jeweils der erste Buchstabe eines Wortes ein Großbuchstabe ist, während die folgenden Buchstaben Kleinbuchstaben sind. Zudem gibt es die sogenannte Casefold-Normalform. Zu jedem Unicode-Zeichen definiert der Unicode-Standard eine Reihe von Eigenschaften, die bei den Algorithmen verwendet werden. Diese Eigenschaften geben an, ob ein Zeichen ein Klein- oder ein Großbuchstabe ist, und welches gegebenenfalls der zugehörige Groß- oder Kleinbuchstabe ist. Die Zuordnungen von Klein- und Großbuchstaben können in drei Gruppen aufgeteilt werden:
Änderung der SchreibweiseUm einen Text in Kleinschreibung zu überführen, wird jedes Zeichen durch den zugehörigen Kleinbuchstaben ersetzt. Dabei sind sowohl die einfachen als auch die komplexen Umwandlungen anzuwenden, sowie der Kontext zu beachten, in dem das Zeichen jeweils steht. Analog wird die Umwandlung in Großschreibung durchgeführt. Für die Umwandlung in Titelschreibung werden zunächst die Wortgrenzen gemäß dem entsprechenden Unicode-Segmentierungsalgorithmus bestimmt. Für jedes Wort wird das erste Zeichen ermittelt, das in unterschiedlichen Schreibweisen vorliegen kann und dieses durch die zugehörige Titelschreibung ersetzt. Die restlichen Zeichen bis zur nächsten Wortgrenze werden in Kleinbuchstaben umgewandelt. Mögliche Anpassungen dieser Algorithmen bestehen darin, andere Abbildungen für die einzelnen Zeichen zu verwenden, beispielsweise nur die einfachen Umwandlungen oder sprachspezifische Varianten. Auch könnte man das große ß als Großschreibung des „ß“ verwenden. Will man beispielsweise das Wort „Wikipedia“ in Großschreibung umwandeln, so ersetzt man einfach jeden Buchstaben durch den zugehörigen Großbuchstaben und erhält „WIKIPEDIA“. Überführt man dagegen das türkische Wort für Wikipedia „Vikipedi“ in Großschreibung, so sollte man die entsprechenden Abbildungen für Türkisch verwenden, die als Großbuchstabe zum „i“ das „İ“ (U+0130) angeben, sodass sich hier „VİKİPEDİ“ ergibt. Möchte man „ΚΌΣΜΟΣ“ in Kleinbuchstaben umwandeln, so steht das erste Sigma in der Wortmitte, wird also zu „σ“, während das zweite Sigma am Wortende steht und in ein „ς“ umgewandelt wird. Es ergibt sich also „κόσμος“. Schreibweisen-unabhängiger VergleichUm zwei Texte unabhängig von ihrer Schreibweise auf Gleichheit zu überprüfen, werden beide in eine spezielle Normalform überführt. Diese casefold genannte Normalform basiert im Wesentlichen auf der Kleinschreibung. Auch hier werden alle Zeichen einzeln durch ihre Anschließend sollten beide Texte in dieselbe Unicode-Normalform überführt werden, bevor sie verglichen werden. Tatsächlich ist es in einigen seltenen Fällen notwendig, die verschiedenen Normalisierungen mehrfach abwechselnd zu wiederholen. Eine spezielle Variante ist für schreibweisen-unabhängige Bezeichner in Programmiersprachen gedacht: Hier werden zusätzlich alle Zeichen entfernt, die als Will man beispielsweise prüfen, ob die beiden Wörter „MASSE“ und „Maße“ unabhängig von der Schreibweise übereinstimmen, so überführt man beide in die Casefold-Normalform, indem man für jeden Buchstaben die Feststellen der SchreibweiseUm festzustellen, ob ein Text in einer bestimmten Schreibweise vorliegt, wird er in diese umgewandelt. Ändert er sich dabei nicht, so lag er bereits in dieser Schreibweise vor. Zur Vereinfachung steht zu jeder Schreibweise einschließlich des casefold eine Eigenschaft zur Verfügung, die angibt, ob sich das Zeichen ändert oder nicht, sodass nur noch für jedes Zeichen diese Eigenschaft getestet werden muss. Genau dann liegt ein Text in einer bestimmten Schreibweise vor, wenn keines seiner Zeichen sich bei der Umwandlung ändern würde. Texte, die nur aus Zeichen bestehen, die wie Ziffern keine unterschiedliche Groß- oder Kleinschreibung besitzen, liegen nach dieser Definition in jeder Schreibweise vor. Um also zu überprüfen, ob ein Text vollständig in Kleinbuchstaben vorliegt, ist es sinnvoll, nicht nur zu prüfen, ob er sich nach dieser Definition in Kleinschreibung befindet. Zusätzlich sollte getestet werden, ob es eine Schreibweise gibt, die nicht zutrifft. So liegen sowohl „UNICODE“ als auch „123“ in Großschreibung vor, nicht aber „Unicode“. Dies kann man entweder überprüfen, indem man die Umwandlungen vornimmt, oder indem man die Quellen
Weblinks
|
Portal di Ensiklopedia Dunia