📜  Unicodedata – Python中的 Unicode 数据库

📅  最后修改于: 2022-05-13 01:55:43.867000             🧑  作者: Mango

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'