Где я могу получить список символов Юникода по классам?
Я новичок в изучении Unicode и не уверен, сколько мне нужно узнать на основе моего фона ASCII, но я читаю спецификация C# для правил идентификаторов чтобы определить, какие символы разрешены в Таблица Azure (который непосредственно основан на спецификации C#).
где я могу найти список символов Unicode, которые попадают в эти категории:
-
letter-character
: символ Юникода классов Lu, Ll, Lt, Lm, Lo, или Nl -
combining-character
: символ Юникода классов Mn или Mc -
decimal-digit-character
: символ Юникода класса Nd -
connecting-character
: символ Юникода класса Pc -
formatting-character
: символ Юникода класса Cf
5 ответов
вы можете получить эту информацию в автоматическом режиме из официального файла данных Unicode,UnicodeData.txt
, который опубликован здесь:
это файл со значениями, разделенными точкой с запятой в каждой строке. В третьем столбце указывается класс символов каждого символа.
преимущество этого в том, что вы можете получить имя персонажа для каждого символа, поэтому у вас есть лучшее представление о том, что это не просто глядя на самого персонажа (например, знаете ли вы, что такое ბ? Правильно, это бан. на грузинском языке. :-)
)
вы можете, конечно, использовать 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 " - сокращение от в unicodecategory.LowercaseLetter.
на ANTLR lexer вы можете найти наборы символов Юникода (LU, LL, LT, LM и LO) в удобном формате диапазона.
https://www.compart.com/en/unicode/category - это довольно полезный и простой в навигации сайт для просмотра категорий. Он доступен для поиска и содержит довольно много информации об отдельных символах unicode.