例如,CJK统一表意文字扩展A中的字符“”;它的unicode值为0x20000,因为C#中的char不能表示这样的字符,所以我想知道是否可以将它转换为字符串,我的问题是:
如果我给你一个像 0x20000 这样的数字,如何转换它并让我得到它的等效字符串,如“”
您可以char.ConvertFromUtf32为此使用:
int utf32 = 0x20000;
string text = char.ConvertFromUtf32(utf32);
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
287 次 |
| 最近记录: |