أين يمكنني الحصول على قائمة من chars Unicode حسب الفصل؟

StackOverflow https://stackoverflow.com/questions/3742495

سؤال

أنا جديد في تعلم Unicode ، وليس متأكدًا من مقدار ما يجب أن أتعلمه بناءً على خلفيتي ASCII ، لكنني أقرأ المواصفات C# على قواعد المعرفات لتحديد ما هو مسموح به في الداخل جدول أزور (الذي يعتمد مباشرة على المواصفات C#).

أين يمكنني العثور على قائمة بأحرف Unicode التي تندرج في هذه الفئات:

  • letter-character: حرف Unicode للفئات Lu أو LL أو LT أو LM أو LO أو NL
  • combining-character: حرف Unicode من الفصول Mn أو MC
  • decimal-digit-character: حرف Unicode للفئة ND
  • connecting-character: حرف Unicode للكمبيوتر الفني
  • formatting-character: حرف Unicode للفئة CF
هل كانت مفيدة؟

المحلول

يمكنك استرداد هذه المعلومات بطريقة آلية من ملف بيانات Unicode الرسمي ، UnicodeData.txt, ، الذي يتم نشره هنا:

هذا ملف له قيم فاصلة منقوطة في كل سطر. يخبرك العمود الثالث فئة حرف كل حرف.

الفائدة من ذلك هي أنه يمكنك الحصول على اسم الشخصية لكل حرف ، لذلك لديك فكرة أفضل عن ماهية ما هو من خلال النظر إلى الشخصية نفسها (على سبيل المثال ، هل تعرف ما هو؟ هذا صحيح ، إنه حظر. الجورجي. :-))

نصائح أخرى

يحتوي FileFormat.info على قائمة بأحرف Unicode حسب الفئة:

http://www.fileformat.info/info/unicode/category/index.htm

يمكنك ، بالطبع ، استخدام 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 الفردية.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top