Hyppää sisältöön

Ei vielä käännetty

Tätä sivua ei ole vielä käännetty suomeksi, joten se näytetään englanniksi. Auta kääntämään

unicodedata Module

The unicodedata module provides access to the Unicode Character Database (UCD), including character names, categories, normalization, and digit/decimal values.

Complexity Reference

Operation Time Space Notes
name(ch) O(1) O(1) Lookup by code point; raises ValueError if unnamed
lookup(name) O(1) O(1) Lookup by name
category(ch) O(1) O(1) General category
bidirectional(ch) O(1) O(1) Bidi class
combining(ch) O(1) O(1) Canonical combining class
decimal(ch) / digit(ch) / numeric(ch) O(1) O(1) Numeric properties
normalize(form, s) O(n) O(n) n = string length
is_normalized(form, s) O(n) O(1) Checks normalization

Character Properties

import unicodedata

# Basic properties
ch = "é"
print(unicodedata.name(ch))       # LATIN SMALL LETTER E WITH ACUTE
print(unicodedata.category(ch))   # Ll
print(unicodedata.combining(ch))  # 0
print(unicodedata.bidirectional(ch))  # L

# Numeric properties
print(unicodedata.decimal("٢"))   # 2
print(unicodedata.digit("②"))     # 2
print(unicodedata.numeric("Ⅷ"))   # 8.0

Name Lookup

import unicodedata

# Lookup by name
ch = unicodedata.lookup("GREEK SMALL LETTER MU")  # "μ"

# Safe name lookup with default
name = unicodedata.name("Ω", "UNKNOWN")  # "GREEK CAPITAL LETTER OMEGA"
missing = unicodedata.name("😀", None)    # Name exists; returns string

Normalization

import unicodedata

text = "cafe\u0301"  # "e" + combining acute

# Normalize to NFC/NFD/NFKC/NFKD
nfc = unicodedata.normalize("NFC", text)
nfd = unicodedata.normalize("NFD", text)

print(text == nfc)  # False
print(text == nfd)  # True

# Check normalization
print(unicodedata.is_normalized("NFC", text))  # False
print(unicodedata.is_normalized("NFD", text))  # True