相当于.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中将字节转换为字符有什么建议?
如果您只有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为字节数