C#の文字は実際にはUTF16コードポイントであるため、簡単です。
char x = 'A';
Console.WriteLine("U+{0:x4}", (int)x);
コメントに対処するためにchar
、C#のAは16ビットの数値であり、UTF16コードポイントを保持します。16を超えるコードポイントでは、ビットスペースをC#文字で表すことはできません。C#の文字は可変幅ではありません。ただし、文字列は2つの文字を続けて持つことができ、それぞれがコードユニットであり、UTF16コードポイントを形成します。文字列入力と16ビットスペースを超える文字がある場合は、別の回答で提案されているように、char.IsSurrogatePair
とを使用できます。Char.ConvertToUtf32
string input = ....
for(int i = 0 ; i < input.Length ; i += Char.IsSurrogatePair(input,i) ? 2 : 1)
{
int x = Char.ConvertToUtf32(input, i);
Console.WriteLine("U+{0:X4}", x);
}