解决方法
容易,因为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); }
原文地址:https://www.jb51.cc/csharp/94560.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。