unicodedata — Unicode-Datenbank¶
Dieses Modul bietet Zugriff auf die Unicode Character Database (UCD), die Zeicheneigenschaften für alle Unicode-Zeichen definiert. Die in dieser Datenbank enthaltenen Daten stammen aus der UCD-Version 16.0.0.
Das Modul verwendet dieselben Namen und Symbole, wie sie im Unicode Standard Annex #44, „Unicode Character Database“, definiert sind. Es definiert die folgenden Funktionen
Siehe auch
Das Unicode HOWTO für weitere Informationen über Unicode und die Verwendung dieses Moduls.
- unicodedata.lookup(name)¶
Zeichen anhand des Namens nachschlagen. Wenn ein Zeichen mit dem angegebenen Namen gefunden wird, wird das entsprechende Zeichen zurückgegeben. Wenn es nicht gefunden wird, wird ein
KeyErrorausgelöst. Beispiel>>> unicodedata.lookup('LEFT CURLY BRACKET') '{'
Die von dieser Funktion zurückgegebenen Zeichen sind dieselben, die durch die `\N`-Escape-Sequenz in Zeichenkettenliteralen erzeugt werden. Beispiel
>>> unicodedata.lookup('MIDDLE DOT') == '\N{MIDDLE DOT}' True
- unicodedata.name(chr, default=None, /)¶
Gibt den dem Zeichen chr zugewiesenen Namen als Zeichenkette zurück. Wenn kein Name definiert ist, wird default zurückgegeben oder, falls nicht angegeben, ein
ValueErrorausgelöst. Beispiel>>> unicodedata.name('½') 'VULGAR FRACTION ONE HALF' >>> unicodedata.name('\uFFFF', 'fallback') 'fallback'
- unicodedata.decimal(chr, default=None, /)¶
Gibt den dem Zeichen chr zugewiesenen Dezimalwert als ganze Zahl zurück. Wenn kein solcher Wert definiert ist, wird default zurückgegeben oder, falls nicht angegeben, ein
ValueErrorausgelöst. Beispiel>>> unicodedata.decimal('\N{ARABIC-INDIC DIGIT NINE}') 9 >>> unicodedata.decimal('\N{SUPERSCRIPT NINE}', -1) -1
- unicodedata.digit(chr, default=None, /)¶
Gibt den dem Zeichen chr zugewiesenen Ziffernwert als ganze Zahl zurück. Wenn kein solcher Wert definiert ist, wird default zurückgegeben oder, falls nicht angegeben, ein
ValueErrorausgelöst>>> unicodedata.digit('\N{SUPERSCRIPT NINE}') 9
- unicodedata.numeric(chr, default=None, /)¶
Gibt den dem Zeichen chr zugewiesenen numerischen Wert als Fließkommazahl zurück. Wenn kein solcher Wert definiert ist, wird default zurückgegeben oder, falls nicht angegeben, ein
ValueErrorausgelöst>>> unicodedata.numeric('½') 0.5
- unicodedata.category(chr)¶
Gibt die dem Zeichen chr zugewiesene allgemeine Kategorie als Zeichenkette zurück. Allgemeine Kategorienamen bestehen aus zwei Buchstaben. Eine Liste der Kategorienamen finden Sie im Abschnitt General Category Values der Unicode Character Database Dokumentation. Beispiel
>>> unicodedata.category('A') # 'L'etter, 'u'ppercase 'Lu'
- unicodedata.bidirectional(chr)¶
Gibt die dem Zeichen chr zugewiesene bidirektionale Klasse als Zeichenkette zurück. Wenn kein solcher Wert definiert ist, wird eine leere Zeichenkette zurückgegeben. Eine Liste der bidirektionalen Codes finden Sie im Abschnitt Bidirectional Class Values der Unicode Character Database Dokumentation. Beispiel
>>> unicodedata.bidirectional('\N{ARABIC-INDIC DIGIT SEVEN}') # 'A'rabic, 'N'umber 'AN'
- unicodedata.combining(chr)¶
Gibt die dem Zeichen chr zugewiesene kanonische Kombinationsklasse als ganze Zahl zurück. Gibt
0zurück, wenn keine Kombinationsklasse definiert ist. Weitere Informationen finden Sie im Abschnitt Canonical Combining Class Values der Unicode Character Database.
- unicodedata.east_asian_width(chr)¶
Gibt die dem Zeichen chr zugewiesene ostasiatische Breite als Zeichenkette zurück. Eine Liste der Breiten und weitere Informationen finden Sie in Unicode Standard Annex #11.
- unicodedata.mirrored(chr)¶
Gibt die dem Zeichen chr zugewiesene gespiegelte Eigenschaft als ganze Zahl zurück. Gibt
1zurück, wenn das Zeichen als „gespiegeltes“ Zeichen in bidirektionellem Text identifiziert wurde, andernfalls0. Beispiel>>> unicodedata.mirrored('>') 1
- unicodedata.decomposition(chr)¶
Gibt die dem Zeichen chr zugewiesene Zeichenzerlegungszuordnung als Zeichenkette zurück. Wenn keine solche Zuordnung definiert ist, wird eine leere Zeichenkette zurückgegeben. Beispiel
>>> unicodedata.decomposition('Ã') '0041 0303'
- unicodedata.normalize(form, unistr)¶
Gibt die Normalform form für die Unicode-Zeichenkette unistr zurück. Gültige Werte für form sind ‚NFC‘, ‚NFKC‘, ‚NFD‘ und ‚NFKD‘.
Der Unicode-Standard definiert verschiedene Normalformen einer Unicode-Zeichenkette, basierend auf der Definition von kanonischer Äquivalenz und Kompatibilitätsäquivalenz. In Unicode können mehrere Zeichen auf verschiedene Weise ausgedrückt werden. Zum Beispiel kann das Zeichen U+00C7 (LATIN CAPITAL LETTER C WITH CEDILLA) auch als die Sequenz U+0043 (LATIN CAPITAL LETTER C) U+0327 (COMBINING CEDILLA) ausgedrückt werden.
Für jedes Zeichen gibt es zwei Normalformen: Normalform C und Normalform D. Normalform D (NFD) ist auch als kanonische Zerlegung bekannt und wandelt jedes Zeichen in seine zerlegte Form um. Normalform C (NFC) wendet zuerst eine kanonische Zerlegung an und setzt dann vordefinierte Zeichen wieder zusammen.
Zusätzlich zu diesen beiden Formen gibt es zwei weitere Normalformen, die auf Kompatibilitätsäquivalenz basieren. In Unicode werden bestimmte Zeichen unterstützt, die normalerweise mit anderen Zeichen vereinheitlicht würden. Zum Beispiel ist U+2160 (ROMAN NUMERAL ONE) eigentlich dasselbe wie U+0049 (LATIN CAPITAL LETTER I). Es wird jedoch in Unicode zur Kompatibilität mit bestehenden Zeichensätzen (z. B. gb2312) unterstützt.
Die Normalform KD (NFKD) wendet die Kompatibilitätszerlegung an, d. h., sie ersetzt alle Kompatibilitätszeichen durch ihre Entsprechungen. Die Normalform KC (NFKC) wendet zuerst die Kompatibilitätszerlegung an, gefolgt von der kanonischen Zusammensetzung.
Selbst wenn zwei Unicode-Zeichenketten normalisiert sind und für einen menschlichen Leser gleich aussehen, können sie nicht gleich verglichen werden, wenn eine Kombinationszeichen enthält und die andere nicht.
- unicodedata.is_normalized(form, unistr)¶
Gibt zurück, ob die Unicode-Zeichenkette unistr in der Normalform form vorliegt. Gültige Werte für form sind ‚NFC‘, ‚NFKC‘, ‚NFD‘ und ‚NFKD‘.
Hinzugefügt in Version 3.8.
Zusätzlich stellt das Modul die folgende Konstante bereit
- unicodedata.unidata_version¶
Die Version der Unicode-Datenbank, die in diesem Modul verwendet wird.
- unicodedata.ucd_3_2_0¶
Dies ist ein Objekt, das dieselben Methoden wie das gesamte Modul hat, aber stattdessen die Unicode-Datenbankversion 3.2 verwendet, für Anwendungen, die diese spezifische Version der Unicode-Datenbank benötigen (wie z. B. IDNA).
Fußnoten