识别不同语言的 Unicode 数字

Ale*_*lex 3 unicode

在 Unicode 中,每种语言都有自己的编号。例如,ASCII 为“3”,日语为“\xef\xbc\x93”,等等。无论它由什么 unicode 字节表示,我如何识别它?

\n

Jos*_*efZ 5

了解UnicodeData 文件格式 中的规范属性十进制数字值数字值数字值

\n\n
\n

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

\n\n

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

\n\n

数值 规范这是一个数值字段。如果字符具有数字属性(如 Unicode 标准第 4 章中所指定),则该字符的值在此字段中用整数或有理数表示。这包括分数,\n 例如,“1/5”表示 U+2155 普通分数五分之一 还包括兼容性字符的数值,例如带圆圈的数字。

\n
\n\n

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

\n\n
import unicodedata\n\nnumchars = \'\\u0033\',\'\\u00B3\',\'\\u0663\',\'\\u06F3\',\'\\u07C3\',\'\\u0969\',\'\\uFF13\',\'\\u2155\'\n\nfor numchar in numchars:\n    print( numchar\n        , unicodedata.decimal( numchar, -1)\n        , unicodedata  .digit( numchar, -1)\n        , unicodedata.numeric( numchar, -1)\n        , unicodedata   .name( numchar, \'? ? ?\') )\n
Run Code Online (Sandbox Code Playgroud)\n\n

输出

\n\n
\n
\n==> D:\\test\\Python\\Py3\\41045800.py\n\n3 3 3 3.0 位三\n\n\xc2\xb3 -1 3 3.0 上标三\n\n\xd9 \xa3 3 3 3.0 阿拉伯-印度数字三\n\n\xdb\xb3 3 3 3.0 扩展阿拉伯-印度数字三\n\n\xdf\x83 3 3 3.0 NKO 数字三\n\n\xe0\xa5\ xa9 3 3 3.0 天成文数字三\n\n\xef\xbc\x93 3 3 3.0 全角数字三\n\n\xe2\x85\x95 -1 -1 0.2 粗俗分数五分之一\n\n==>\ n
\n
\n\n

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

\n