加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在C#中返回字符的代码点

发布时间:2020-12-15 06:48:34 所属栏目:百科 来源:网络整理
导读:我可以返回一个字符的代码点吗?例如,如果输入为“A”,则输出应为“U 0041”.请帮忙吗非常感谢. 解决方法 容易,因为C#中的chars实际上是UTF16的代码点: char x = 'A';Console.WriteLine("U+{0:x4}",(int)x); 为了解决这些注释,C#中的char是一个16位数字,并
我可以返回一个字符的代码点吗?例如,如果输入为“A”,则输出应为“U 0041”.请帮忙吗非常感谢.

解决方法

容易,因为C#中的chars实际上是UTF16的代码点:
char x = 'A';
Console.WriteLine("U+{0:x4}",(int)x);

为了解决这些注释,C#中的char是一个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);
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读