Как преобразовать 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, а затем получите более компактную таблицу имен. но вы должны подготовить такой файл, хотя это не сложно.