识别来自不同语言的Unicode编号

时间:2016-12-08 17:54:23

标签: unicode

在Unicode中,每种语言都有自己的编号。例如,ASCII有“3”,日语有“3”,依此类推。无论它由哪个unicode字节表示,我如何识别三个?

1 个答案:

答案 0 :(得分:4)

了解规范属性 十进制数字值 数字值 数值<{3}}中的

  

十进制数字值 规范这是一个数字字段。如果字符具有十进制数字属性,如第4章中所述   在Unicode标准中,该数字的值用a表示   该字段中的整数值。

     

数字值 规范这是一个数字字段。如果字符代表一个数字,不一定是十进制数字,那么   价值在这里。这包括不形成十进制基数的数字   表单,例如兼容性上标数字。

     

数字值 规范这是一个数字字段。如果字符具有数字属性,则在第4章中指定   Unicode标准,该字符的值用a表示   此字段中的整数或有理数。这包括分数,   例如,&#34; 1/5&#34;对于U + 2155 VULGAR FRACTION ONE FIFTH还包括   兼容字符的数值,如带圆圈的数字。

例如,Python的unicodedata模块提供对Unicode字符数据库的访问,该数据库定义了所有Unicode字符的字符属性,请参阅实现:UnicodeData File Format

import unicodedata

numchars = '\u0033','\u00B3','\u0663','\u06F3','\u07C3','\u0969','\uFF13','\u2155'

for numchar in numchars:
    print( numchar
        , unicodedata.decimal( numchar, -1)
        , unicodedata  .digit( numchar, -1)
        , unicodedata.numeric( numchar, -1)
        , unicodedata   .name( numchar, '? ? ?') )

<强>输出

==> D:\test\Python\Py3\41045800.py

3 3 3 3.0 DIGIT THREE

³ -1 3 3.0 SUPERSCRIPT THREE

٣ 3 3 3.0 ARABIC-INDIC DIGIT THREE

۳ 3 3 3.0 EXTENDED ARABIC-INDIC DIGIT THREE

߃ 3 3 3.0 NKO DIGIT THREE

३ 3 3 3.0 DEVANAGARI DIGIT THREE

3 3 3 3.0 FULLWIDTH DIGIT THREE

⅕ -1 -1 0.2 VULGAR FRACTION ONE FIFTH

==>

P.S。给出Python示例,因为问题未标记为任何特定语言。