相当于.net 2.0中的Convert.ToChar(byte)

本文关键字:ToChar byte Convert 中的 net 相当于 | 更新日期: 2023-09-27 18:12:27

我仅限于使用。net 2.0,并试图编写一些将字节转换为字符的程序。

理想情况下,我会使用Convert.ToChar(buffer[i]);byte[]数组中的byte中获得一个字符,但在。net 2.0中此功能不存在。使用BitConverter.ToChar(buffer, i)似乎总是导致数组越界错误。

有没有人对我如何在。net 2.0中将字节转换为字符有什么建议?

相当于.net 2.0中的Convert.ToChar(byte)

如果您只有byte,那么您必须假设该字符是ASCII。char是Unicode 16。ASCII的前128个码值直接映射到Unicode。所以试试这个

public char ToChar(byte b)
{
  if (b < 0 || b > 127)
     throw new ArgumentException("Not an ASCII character.");
  return (char) b;
}

大多数网络软件现在都假定字符串是用UTF-8编码的。所以如果你知道缓冲区中的字节数那么你应该使用

var s = Encoding.Utf8.GetString(buffer, i, n);

其中n为字节数