Информация содержится в базе данных символов Unicode (UCD) .Любая библиотека Unicode должна содержать реализацию этой базы данных, но точная структура и подробности реализации будут зависеть от библиотеки.
В большинстве случаев внутренняя структура данных генерируется скриптом во время компиляции библиотеки.,Например, реализацию Python unicodedata
можно найти в каталоге Modules репозитория CPython github .Реализация интерфейсов Unicode Data находится в unicodedata.c
, а сама база данных находится в unicodedata_db.h
(что на самом деле не то, о чем я думаю как заголовочный файл, но это #include
'd в файле реализации C).Как указывает комментарий в начале файла базы данных, этот файл автоматически создается скриптом по адресу Tools / unicode / makeunicodedata.py , который считывает официальные файлы UCD и генерирует эквивалентный код на языке C.
Данные о числовых значениях содержатся в основном столбце Данные Unicode (в столбце 8), с некоторой дополнительной информацией в данных для символов Хана . Для удобствачисловые данные компилируются в упрощенную форму как таблица производных числовых значений (хотя я не верю, что вышеупомянутая реализация CPython использует файл производных данных.)
Обратите внимание, что UCD - этоспецифичны для конкретной версии Unicode, хотя есть гарантии стабильности, поэтому библиотеки используют препроцессор базы данныхнеобходимо будет перекомпилировать для адаптации к новой версии Unicode.