クラスごとにUnicode Charsのリストはどこで入手できますか?
-
04-10-2019 - |
質問
私はUnicodeを学ぶのは初めてですが、ASCIIの背景に基づいてどれだけ学ばなければならないかわかりませんが、読んでいます 識別子のルールのC#仕様 内部で許可されているcharを決定する Azureテーブル (これはC#仕様に直接基づいています)。
これらのカテゴリに分類されるユニコード文字のリストはどこにありますか。
letter-character
: :クラスのユニコード文字lu、ll、lt、lm、lo、またはnlcombining-character
: :クラスMNまたはMCのユニコード文字decimal-digit-character
: :クラスndのユニコード文字connecting-character
: :クラスPCのユニコード文字formatting-character
: :クラスCFのユニコード文字
解決
この情報は、公式のUnicodeデータファイルから自動化された方法で取得できます。 UnicodeData.txt
, 、ここで公開されています:
これは、各行にセミコロン分離値を持つファイルです。 3番目の列は、各文字のキャラクタークラスを教えてくれます。
これの利点は、各キャラクターのキャラクター名を取得できることです。したがって、キャラクター自体を見るだけでは、それが何であるかについてのより良いアイデアを持っていることです(例えば、ბが何であるか知っていますか?そうです、それは正しい、それは禁止です。ジョージア語。 :-)
)
他のヒント
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 カテゴリを閲覧するための非常に便利で手に負えないサイトです。検索可能で、個々のユニコード文字に関する非常に多くの情報をリストしています。