Unicode 如何从数字字符返回数值?

Unicode 如何从数字字符返回数值?,unicode,Unicode,如何返回unicode数字字符中的数值?它来自函数中的表吗?还是一个字体的表格?或者?信息包含在中。任何Unicode库都必须包含此数据库的实现,但精确的结构和实现细节将特定于该库 在大多数情况下,内部数据结构是在库的编译过程中由脚本生成的。例如,可以在中找到Pythonunicodedata实现。Unicode数据接口的实现在unicodedata.c中,数据库本身在unicodedata\u db.h(这并不是我真正认为的头文件,但它是C实现文件中的#include'd。正如数据库文件开头的

如何返回unicode数字字符中的数值?它来自函数中的表吗?还是一个字体的表格?或者?

信息包含在中。任何Unicode库都必须包含此数据库的实现,但精确的结构和实现细节将特定于该库

在大多数情况下,内部数据结构是在库的编译过程中由脚本生成的。例如,可以在中找到Python
unicodedata
实现。Unicode数据接口的实现在
unicodedata.c
中,数据库本身在
unicodedata\u db.h
(这并不是我真正认为的头文件,但它是C实现文件中的
#include
'd。正如数据库文件开头的注释所示,该文件由脚本自动生成,该脚本读取官方UCD文件并生成等效的C代码

数值数据本身包含在core的一列(第8列)中,数据中还包含一些附加信息。为了方便起见,数值数据被编译成简化的形式(尽管我不相信前面提到的CPython实现使用派生数据文件)


注意UCD是特定于特定Unicode版本的,尽管有稳定性保证,因此需要重新编译使用数据库预处理器的库,以适应新的Unicode版本。

这是一个非常广泛的问题。您是否想知道操作系统如何接收键盘按键并将其传递通过多个层和应用程序将整个操作系统都嵌入到您的程序中?所有不同的标记是什么?这本身就让它成为一个被关闭的候选对象。请阅读,获取,阅读,以及。@Someprogrammerdude:OP正在询问UCD中的
数值
属性,这是Unicode的作用图书馆可以弄明白૨ (U+0AE8)是数字2(在古吉拉特邦,恰巧如此)@rici提出了这个非常广泛的问题,这是一种可能的解释方法。还有数百种其他解释方法。@Someprogrammerdude:我完全不同意。根据Unicode sta第4.5节的规定,Unicode数字字符是具有一般类别
Nd
Nl
No
的Unicode字符标准。根据第4.6节:“数值和数值类型是表示数字的字符的标准属性”。在Unicode标准的上下文中,我认为没有其他方法可以合理解释“Unicode数字字符的数值”描述。我的问题简短,因为我有一个问题需要排除。我知道Unicode字符数据库(ucd)和Unicode数据,字段8。我看到了派生的数值表。可能的问题是python、C或scheme是否从中获取此信息以返回数值?我知道它不在字形中。可能在字体中的表中。可能在返回数值的函数或过程中的表中。作者之一附件#44的s说它在操作系统中。我找不到要读取的函数之一的源代码?@free:它在正在使用的unicode库中的一个表中。我不相信任何操作系统都能保存这些信息,尽管这是肯定可能的;如果你有引用,请提供一个链接。@free:没有人能回答请求你不需要问,你需要精确。正如我所说,如果你想了解某种语言,就要问它。否则,这只是猜测你对什么实现感兴趣。所以,我猜你对Python感兴趣。如果是这样的话,开始阅读代码的地方是。@free:我在Python实现中添加了指针。t他指出,数据来自UCD;在库构建期间,它被预处理到库中。因此,它实际上是硬连接到库二进制的。没有标准的“C”库,但是对于C、C++和java,请检查ICU库,尽管这是大量代码读取。(对于C/C++实现,UCD在库构建期间编译为一个大型二进制结构,该结构是按需mmap的。)我不知道有哪个Scheme实现提供了numeric_value属性;更具体的指针会有帮助。@mrlister:Net framework是一个库,而不是一个操作系统。正如文档所表明的,保存数据的是框架,而不是操作系统:“特定版本的.NET Framework中的字符分类基于单一版本的Unicode标准,而与运行.NET Framework的底层操作系统无关。”(在“调用方注意事项”部分。)