如何将表示 Unicode 字符的数字(大于 0xFFFF)转换为其在 C# 中的等效字符串
How to convert a number (larger than 0xFFFF) that represents a Unicode character to its equivalent string in C#
例如中日韩统一表意文字扩展A中的一个字符'';它的unicode值是0x20000,因为C#中的char不能表示这样的字符,所以我想知道是否可以将它转换为字符串,我的问题是:
如果我给你一个像 0x20000 这样的数字,如何转换它并让我得到它的等效字符串,如 ""
你可以使用 char.ConvertFromUtf32
:
int utf32 = 0x20000;
string text = char.ConvertFromUtf32(utf32);
string
本身是一系列 UTF-16 代码单元,在本例中为 U+D840 和 U+DC00,您可以通过打印出各个 char
值来查看:
int utf32 = 0x20000;
string text = char.ConvertFromUtf32(utf32);
Console.WriteLine(((int) text[0]).ToString("x4")); // d840
Console.WriteLine(((int) text[1]).ToString("x4")); // dc00
例如中日韩统一表意文字扩展A中的一个字符'';它的unicode值是0x20000,因为C#中的char不能表示这样的字符,所以我想知道是否可以将它转换为字符串,我的问题是:
如果我给你一个像 0x20000 这样的数字,如何转换它并让我得到它的等效字符串,如 ""
你可以使用 char.ConvertFromUtf32
:
int utf32 = 0x20000;
string text = char.ConvertFromUtf32(utf32);
string
本身是一系列 UTF-16 代码单元,在本例中为 U+D840 和 U+DC00,您可以通过打印出各个 char
值来查看:
int utf32 = 0x20000;
string text = char.ConvertFromUtf32(utf32);
Console.WriteLine(((int) text[0]).ToString("x4")); // d840
Console.WriteLine(((int) text[1]).ToString("x4")); // dc00