Как преобразовать char в полное имя Unicode?

Мне нужны функции для преобразования между символом (например, 'α') и его полным именем Unicode (например, "GREEK SMALL LETTER ALPHA") в обоих направлениях.

Решение, которое я придумал, - это выполнить поиск в официальном стандарте Unicode, доступном в Интернете: http://www.unicode.org/Public/6.2.0/ucd/UnicodeData.txt или, вернее, в его кешированной локальной копии, возможно, заранее преобразован в подходящую коллекцию, чтобы улучшить производительность поиска).

Есть ли более простой способ сделать эти преобразования? Я бы предпочел решение на С#, но также приветствуются решения на других языках, которые могут быть адаптированы к С#/.NET. Спасибо!

Ответ 1

Если вы не хотите, чтобы таблица имен Unicode сохранялась в памяти, просто подготовьте текстовый файл, где смещение значения unicode, умноженное на максимальное имя длины юникода, укажет на имя юникода. для максимальной длины 4 байта это не будет mroe чем несколько мегабайт. Если вы хотите иметь более компактную реализацию, тогда смещайте смещенный адрес в файле в имена юникода в начале файла, индексированного по значению unicode, а затем получите более компактную таблицу имен. но вы должны подготовить такой файл, хотя это не сложно.