在 Unicode 中,每种语言都有自己的编号。例如,ASCII 为“3”,日语为“\xef\xbc\x93”,等等。无论它由什么 unicode 字节表示,我如何识别它?
\n了解UnicodeData 文件格式 中的规范属性十进制数字值、数字值和 数字值:
\n\n\n\n\n十进制数值 规范这是一个数字字段。如果字符具有十进制数字属性(如 Unicode 标准第 4 章中所指定),则该数字的值在此字段中用整数值表示。
\n\n数字值 规范这是一个数字字段。如果字符代表数字,不一定是十进制数字,\n 值就在这里。这包括不形成十进制基数形式的数字,例如兼容性上标数字。
\n\n数值 规范这是一个数值字段。如果字符具有数字属性(如 Unicode 标准第 4 章中所指定),则该字符的值在此字段中用整数或有理数表示。这包括分数,\n 例如,“1/5”表示 U+2155 普通分数五分之一 还包括兼容性字符的数值,例如带圆圈的数字。
\n
例如,Python 的unicodedata模块提供对 Unicode 字符数据库的访问,该数据库定义了所有 Unicode 字符的字符属性,请参阅实现:unicodedata \xe2\x80\x94 Unicode 数据库:
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, \'? ? ?\') )\nRun Code Online (Sandbox Code Playgroud)\n\n输出:
\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
PS 给出 Python 示例,因为问题未标记为任何特定语言。
\n| 归档时间: |
|
| 查看次数: |
257 次 |
| 最近记录: |