Unicode Character Database Webservices

Abfragen auf die Unicode Character Database zum Erhalt von Informationen zu Zeichen, Codepoint und Normalform C.

Manuelle Suche in UCD

Formular zurücksetzen: Suche Name Suche Codepoint

Webservices Request

Diese Anwendung ist außerdem für automatisierte Abfragen gedacht, welche auf die Unicode Character Database des Unicode Konsortium ausgeführt werden. Abfragen sind, gesteuert über die Parameter checkout oder query beispielsweise als Suche möglich, wobei die mit dem Parameter query= übertragenen Suchbegriffe auf das Name-Feld in der Datenbank angewandt werden. Beispiele für diese Möglichkeit an Abfragen:

http://rolfrost.de/ucd.html?query=omega
Die Anfrage geht mit dem Suchbegriff omega als Request an den Webservice.
http://rolfrost.de/ucd.html?query=ohm sign
Die Anfrage geht mit den Suchbegriffen ohm sign als Request an den Webservice. Leerzeichen sind entewder durch das + Zeichen oder %20 zu ersetzen.

Die zweite Möglichkeit einer Abfrage besteht darin, alle Informationen zu einem bestimmten Zeichen abzufragen wobei hierzu ein einzelner Codepoint oder mehrere Codepoints im Request gesendet werden, Beispiele untenstehend;

http://rolfrost.de/ucd.html?checkout=00b5
Liefert Informationen zum Zeichen mit dem Codepoint 00B5 (MICRO SIGN)
http://rolfrost.de/ucd.html?checkout=2126
Liefert Informationen zum Zeichen mit dem Codepoint 2126 (OHM SIGN)
http://rolfrost.de/ucd.html?checkout=2126;checkout=2127
Angefordert werden Informationen zu mehreren Codepoints die über den Parameter checkout= in einem Request zusammengefasst an den Service gesendet werden. In der Response wird als JSON kodiert ein Array gesendet.

Webservices Response

In allen Fällen wird eine einheitliche Response gesendet, was die Datenfelder betrifft. Als JSON-String kodiert wird hierzu entweder ein einzelnes Objekt [{}] zum entsprechenden Zeichen oder ein Array mit Objekten [{},{}..{}] in der Response geliefert. Die Datenfelder entsprechen namentlich weitgehend den hier getroffenen Festlegungen des Unicode-Konsortiums zur Datei UnicodeData.txt Version Unicode 10.0.0, die Felder im Einzelnen siehe untenstehend anhand des Beispiels:


'Bidi_Class' => 'L',
'Bidi_Class_Value' => 'Left_To_Right, any strong left-to-right character',
'Bidi_Mirrored' => 'N',
'Canonical_Combining_Class' => '0',
'Canonical_Combining_Class_Value' => 'Not_Reordered, Spacing and enclosing marks; also many vowel and consonant signs, even if nonspacing',
'Codepoint' => '2102',
'Decomposition_Mapping' => '0043',
'Decomposition_Type' => 'font',
'Decomposition_Type_Descr' => 'Font variant (for example, a blackletter form)',
'Decomposition_Type_Mapping' => '<font> 0043',
'General_Category' => 'Lu',
'General_Category_Value' => 'Uppercase_Letter, an uppercase letter',
'IF_Numeric_Type_Decimal' => '',
'ISO_Comment' => undef,
'If_Numeric_Type_Digit' => '',
'If_Numeric_Type_Numeric' => '',
'Name' => 'DOUBLE-STRUCK CAPITAL C',
'Simple_Lowercase_Mapping' => undef,
'Simple_Titlecase_Mapping' => undef,
'Simple_Uppercase_Mapping' => undef,
'Unicode_1_Name' => 'DOUBLE-STRUCK C',
'NFC' => ''

Anmerkung: Dieser Service ergänzt die in UnicodeData.txt Felder um deren Beschreibung. Obenstehendes Beispiel zeigt das Feld Decomposition_Type_Mapping so wie es aus der Datei UnicodeData.txt gelesen wird. Der Webservice parst dieses Feld und erzeugt mit dem Ergebnis die weiteren Felder Decomposition_Mapping, Decomposition_Type und Decomposition_Type_Descr.

Auf dieselbe Art und Weise wird das Datenfeld General_Category ergänzt um die Beschreibung in General_Category_Value und sinngemäß dasselbe wendet dieser Webservice auf die Datenfelder Canonical_Combining_Class und Bidi_Class an (Änderungen vorbehalten).

Perl Module UnicodeDataAPI.pm

Das Modul wurde extra für diesen Webservice entwickelt. Als Datenquelle gibt es mehrere Möglichkeiten welcher der Konstruktor zum Erstellen einer Instanz dieser Klasse wiederspiegelt:


my $ucd = UnicodeDataAPI->new( format => 'mysql', tabn => 'unicodedata', base => 'webdaten', utf8 => 1) or die $@;
my $ucd = UnicodeDataAPI->new( format => 'txt', dir => '/home/files', file => 'UnicodeData.txt' ) or die $@;
my $ucd = UnicodeDataAPI->new( format => 'eav', dir => '/home/files', file => 'UnicodeData.eav' ) or die $@;

Die Instanz selbst implementiert die Methoden checkout() und search() entsprechend den Anforderungen des Webservices oder allgemeiner Abfragen. Darüber hinaus gibt es Methoden zum Transformieren der Daten aus der unrsprünglichen Datenquelle UnicodeData.txt entweder nach mysql oder ein anderes Dateiformat (.eav ist binär).


Die rein persönlichen Zwecken dienende Seite verwendet funktionsbedingt einen Session-Cookie. Datenschutzerklärung: Auf den für diese Domäne installierten Seiten werden grundsätzlich keine personenbezogenen Daten erhoben. Das Loggen der Zugriffe mit Ihrer Remote Adresse erfolgt beim Provider soweit das technisch erforderlich ist. @: nmq​rstx-18­@yahoo.de