如何从Unicode数字字符返回数字值?它来自函数中的表吗?还是字体表?还是?
答案 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版本。