Как возвращается числовое значение из числового символа? - PullRequest
0 голосов
/ 17 февраля 2019

Как возвращается числовое значение из числового символа Юникода?Это из таблицы в функции?Или таблица в шрифте?Или

1 Ответ

0 голосов
/ 17 февраля 2019

Информация содержится в базе данных символов 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.

...