Unicodedata – Python中的 Unicode 数据库
Unicode字符数据库 (UCD)由 Unicode 标准附件 #44 定义,它定义了所有 unicode字符的字符属性。该模块提供对 UCD 的访问,并使用 Unicode字符数据库定义的相同符号和名称。
模块定义的功能:
- unicodedata.lookup(名称)
此函数按名称查找字符。如果在数据库中找到具有给定名称的字符,则返回相应的字符,否则引发 Keyerror。例子 :
import unicodedata print (unicodedata.lookup('LEFT CURLY BRACKET')) print (unicodedata.lookup('RIGHT CURLY BRACKET')) print (unicodedata.lookup('ASTERISK')) # gives error as there is # no symbol called ASTER # print (unicodedata.lookup('ASTER'))
输出 :
{ } *
- unicodedata.name(chr[, 默认])
此函数将分配给给定字符的名称作为字符串返回。如果未定义名称,则函数返回默认值,否则如果未给出名称,则会引发 ValueError。例子 :
import unicodedata print (unicodedata.name(u'/')) print (unicodedata.name(u'|')) print (unicodedata.name(u':'))
输出 :
SOLIDUS VERTICAL LINE COLON
- unicodedata.decimal(chr[, 默认])
此函数将分配给给定字符的十进制值作为整数返回。如果未定义值,则函数返回默认值,否则如果未给出值,则引发 ValueError。例子 :
import unicodedata print (unicodedata.decimal(u'9')) print (unicodedata.decimal(u'a'))
输出 :
9 Traceback (most recent call last): File "7e736755dd176cd0169eeea6f5d32057.py", line 4, in print unicodedata.decimal(u'a') ValueError: not a decimal
- unicodedata.digit(chr[, 默认])
此函数以整数形式返回分配给给定字符的数字值。如果未定义值,则函数返回默认值,否则如果未给出值,则引发 ValueError。例子 :
import unicodedata print (unicodedata.decimal(u'9')) print (unicodedata.decimal(u'143'))
输出 :
9 Traceback (most recent call last): File "ad47ae996380a777426cc1431ec4a8cd.py", line 4, in print unicodedata.decimal(u'143') TypeError: need a single Unicode character as parameter
- unicodedata.numeric(chr[, default])
此函数以整数形式返回分配给给定字符的数值。如果未定义值,则函数返回默认值,否则如果未给出值,则引发 ValueError。例子 :
import unicodedata print (unicodedata.decimal(u'9')) print (unicodedata.decimal(u'143'))
输出 :
9 Traceback (most recent call last): File "ad47ae996380a777426cc1431ec4a8cd.py", line 4, in print unicodedata.decimal(u'143') TypeError: need a single Unicode character as parameter
- unicodedata.category(chr)
此函数将分配给给定字符的一般类别作为字符串返回。例如,它为字母返回“L”,为大写返回“u”。例子 :
import unicodedata print (unicodedata.category(u'A')) print (unicodedata.category(u'b'))
输出 :
Lu Ll
- unicodedata.bidirectional(chr)
此函数将分配给给定字符的双向类作为字符串返回。例如,它为阿拉伯语返回“A”,为数字返回“N”。如果没有定义这样的值,则此函数返回一个空字符串。例子 :
import unicodedata print (unicodedata.bidirectional(u'\u0660'))
输出 :
AN
- unicodedata.normalize(form, unistr)
此函数返回 Unicode字符串unistr 的正常形式。 form 的有效值为“NFC”、“NFKC”、“NFD”和“NFKD”。例子 :
from unicodedata import normalize print ('%r' % normalize('NFD', u'\u00C7')) print ('%r' % normalize('NFC', u'C\u0327')) print ('%r' % normalize('NFKD', u'\u2460'))
输出 :
u'C\u0327' u'\xc7' u'1'