我在哪里可以按类获得Unicode字符列表?

goo*_*ate 37 c# unicode azure azure-table-storage

我是学习Unicode的新手,不知道我需要根据我的ASCII背景学到多少东西,但是我正在阅读C#规范中的标识符规则,以确定Azure表中允许使用哪些字符(这是直接基于C#规范).

我在哪里可以找到属于这些类别的Unicode字符列表:

  • letter-character:类Lu,Ll,Lt,Lm,Lo或Nl的Unicode字符
  • combining-character:Mn或Mc类的Unicode字符
  • decimal-digit-character:类Nd的Unicode字符
  • connecting-character:类Pc的Unicode字符
  • formatting-character:Cf类的Unicode字符

Phi*_*oss 37

FileFormat.info按类别列出了Unicode字符:

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

  • 该站点没有正确解析UnicodeData.txt.它不识别范围,也不了解Cn.因此,Co,Cs,Lo和Cn类别的计数错误.除此之外,这是一个很酷的网站. (5认同)
  • +1 - 此选项最适合随意浏览 (4认同)

Tim*_*mwi 37

您可以从官方Unicode数据文件以自动方式检索此信息,该文件UnicodeData.txt在此处发布:

这是一个在每行中以分号分隔的值的文件.第三列告诉你每个角色的角色类.

这样做的好处是你可以获得每个角色的角色名称,这样你就可以更好地了解角色的名称,而不仅仅是看角色本身(例如,你知道what是什么吗?这是对的,这是禁令.格鲁吉亚人.:-))

  • 好的!我什至可以在每个类别中搜索字符,例如“;Cf;” (2认同)
  • ......我从来没有想过Unicode是如此复杂.好像我有很多学习要做的事情. (2认同)

dtb*_*dtb 12

当然,您可以使用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);
}
Run Code Online (Sandbox Code Playgroud)

您可以在MSDN上找到Unicode类别及其短名称的列表,例如,"Ll"是UnicodeCategory.LowercaseLetter的缩写.

  • @ MakerOfThings7:来自[Char.ConvertFromUtf32]的文档(http://msdn.microsoft.com/en-us/library/system.char.convertfromutf32.aspx).如果它的参数"不是从U + 0到U + 10FFFF的有效21位Unicode代码点,不包括从U + D800到U + DFFF的代理对范围,则抛出异常." (2认同)