Где я могу получить список Unicode Chars по классу?
-
04-10-2019 - |
Вопрос
Я новичок, чтобы изучить Unicode, и не уверен, насколько я должен учиться на основе моего фона ASCII, но я читаю C # Spec по правилам для идентификаторов Чтобы определить, какие символы разрешены в пределах Таблица Azure (который напрямую основан на спецификации C #).
Где я могу найти список персонажей Unicode, которые попадают в эти категории:
letter-character
: Символ Unicode классов Лу, LL, LT, LM, LO или NLcombining-character
: Символ Unicode классов Mn или MCdecimal-digit-character
: Символ Unicode класса NDconnecting-character
: Символ Unicode ПК классаformatting-character
: Символ Unicode класса CF
Решение
Вы можете получить эту информацию в автоматической моде из официального файла данных Unicode, UnicodeData.txt
, который публикуется здесь:
Это файл с запятой, разделенными значениями в каждой строке. Третий столбец рассказывает вам класс персонажа каждого персонажа.
Преимущество этого состоит в том, что вы можете получить название персонажа для каждого персонажа, поэтому у вас есть лучшее представление о том, что это такое, чем, просто глядя на сам персонаж (например, вы знаете, что ბ? Это верно, это запрет. В Грузин. :-)
)
Другие советы
FileFormat.info имеет список символов Unicode по категориям:
Вы можете, конечно, использовать LINQ:
var charInfo = Enumerable.Range(0, 0x110000)
.Where(x => x < 0x00d800 || x > 0x00dfff)
.Select(char.ConvertFromUtf32)
.GroupBy(s => char.GetUnicodeCategory(s, 0))
.ToDictionary(g => g.Key);
foreach (var ch in charInfo[UnicodeCategory.LowercaseLetter])
{
Console.Write(ch);
}
Вы можете найти список категорий Unicode и их короткие имена на MSDN, Например, «LL» не хватает для UnicoDeCateCate.lowercaseletter..
в Antlr lexer Вы можете найти наборы символов Unicode (Lu, LL, LT, LM и LO) в удобном формате диапазона.
https://www.compart.com/en/unicode/category. Это довольно полезный и простой для навигации сайта для просмотра категорий. Это доступно и перечислены довольно много информации об отдельных символах Unicode.