أين يمكنني الحصول على قائمة من chars Unicode حسب الفصل؟
-
04-10-2019 - |
سؤال
أنا جديد في تعلم Unicode ، وليس متأكدًا من مقدار ما يجب أن أتعلمه بناءً على خلفيتي ASCII ، لكنني أقرأ المواصفات C# على قواعد المعرفات لتحديد ما هو مسموح به في الداخل جدول أزور (الذي يعتمد مباشرة على المواصفات C#).
أين يمكنني العثور على قائمة بأحرف Unicode التي تندرج في هذه الفئات:
letter-character
: حرف Unicode للفئات Lu أو 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" قصير ل Unicodecategory.LowerCaseletter.
في ال antlr lexer يمكنك العثور على مجموعات أحرف Unicode (LU ، LL ، LT ، LM ، و LO) بتنسيق نطاق مناسب.
https://www.compart.com/en/unicode/category هو موقع مفيد للغاية وسهل التنقل لتصفح الفئات. إنه قابل للبحث ويسرد الكثير من المعلومات حول أحرف Unicode الفردية.