質問

私はUnicodeを学ぶのは初めてですが、ASCIIの背景に基づいてどれだけ学ばなければならないかわかりませんが、読んでいます 識別子のルールのC#仕様 内部で許可されているcharを決定する Azureテーブル (これはC#仕様に直接基づいています)。

これらのカテゴリに分類されるユニコード文字のリストはどこにありますか。

  • letter-character: :クラスのユニコード文字lu、ll、lt、lm、lo、またはnl
  • combining-character: :クラスMNまたはMCのユニコード文字
  • decimal-digit-character: :クラスndのユニコード文字
  • connecting-character: :クラスPCのユニコード文字
  • formatting-character: :クラスCFのユニコード文字
役に立ちましたか?

解決

この情報は、公式のUnicodeデータファイルから自動化された方法で取得できます。 UnicodeData.txt, 、ここで公開されています:

これは、各行にセミコロン分離値を持つファイルです。 3番目の列は、各文字のキャラクタークラスを教えてくれます。

これの利点は、各キャラクターのキャラクター名を取得できることです。したがって、キャラクター自体を見るだけでは、それが何であるかについてのより良いアイデアを持っていることです(例えば、ბが何であるか知っていますか?そうです、それは正しい、それは禁止です。ジョージア語。 :-))

他のヒント

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 カテゴリを閲覧するための非常に便利で手に負えないサイトです。検索可能で、個々のユニコード文字に関する非常に多くの情報をリストしています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top