C# サロゲートペアや異体字の文字変換
C#でサロゲートペアや異体字をUnicodeに変換する方法
// 辻の異体字(しんにょう1つ)
var str = "辻󠄀";
for (var i = 0; i < str.Length; i += (char.IsSurrogate(str, i) ? 2 : 1))
{
// 10進数に変換
var num10 = char.ConvertToUtf32(str, i);
// 16進数に変換
var num16 = num10.ToString("X");
// 頭に「U+」を付与するとUnicode
var unicode = "U+" + num16;
// IVS部分を考慮して連結
sb.Append(unicode);
}
// 変換後のUnicode
Console.WriteLine(sb);