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

时间:2019-02-17 15:39:16

标签: unicode

如何从Unicode数字字符返回数字值?它来自函数中的表吗?还是字体表?还是?

1 个答案:

答案 0 :(得分:1)

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

在大多数情况下,内部数据结构是在库编译期间由脚本生成的。例如,可以在Modules directory of the CPython github repository中找到Python unicodedata实现。 Unicode数据接口的实现位于unicodedata.c中,而数据库本身位于unicodedata_db.h中(这并不是我真正想到的头文件,而是#include正如数据库文件开头的注释所示,该文件由Tools/unicode/makeunicodedata.py脚本自动生成,该脚本读取正式的UCD文件并生成等效的C代码。

数值数据本身包含在核心Unicode Data中的一列中(在第8列中),并且在Han symbols的数据中还包含一些其他信息。为方便起见,数字数据被编译为Derived Numeric Values table的简化形式(尽管我不相信上述CPython实现使用派生的数据文件。)

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