识别不同语言的Unicode数字

识别不同语言的Unicode数字,unicode,Unicode,在Unicode中,每种语言都有自己的编号。例如,ASCII有“3”,日语有“3”3", 依此类推。无论用什么unicode字节表示,我如何识别3?阅读以下内容中的规范属性十进制数字值、数字值和数值: 十进制数字值这是一个数字字段。如果字符具有十进制数字属性,请参见的第4章 在Unicode标准中,该数字的值用 此字段中的整数值 数字值这是一个数字字段。如果字符表示数字,而不一定是十进制数字,则 值在这里。这包括不构成小数基数的数字 格式,例如兼容上标数字 数值这是一个数字字段。如果字符具有

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

阅读以下内容中的规范属性十进制数字值数字值数值

十进制数字值这是一个数字字段。如果字符具有十进制数字属性,请参见的第4章 在Unicode标准中,该数字的值用 此字段中的整数值

数字值这是一个数字字段。如果字符表示数字,而不一定是十进制数字,则 值在这里。这包括不构成小数基数的数字 格式,例如兼容上标数字

数值这是一个数字字段。如果字符具有数字属性,请参见 Unicode标准,该字符的值用 此字段中的整数或有理数。这包括分数, e、 例如,U+2155普通分数的“1/5”也包括五分之一 兼容字符的数值,如带圆圈的数字

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

输出

==>D:\test\Python\Py3\41045800.py 3.0位三 ³-13.0上标三 ٣3.0阿拉伯-印度数字三 ۳3.0扩展阿拉伯-印度数字三 ߃3.0 NKO数字三 ३ 3.0 DEVANAGARI数字三 3 3.0全宽数字三 ⅕ -1-10.2粗俗分数五分之一 ==> 注:给出了Python示例,因为问题没有标记到任何特定语言

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 ==>