我只限于使用.Net 2.0,并尝试编写将字节转换为字符的代码。
理想情况下,我会使用 Convert.ToChar(buffer[i]); 从 byte 在一个 byte[] 数组,但在.Net 2.0中不存在此功能。使用 BitConverter.ToChar(buffer, i) 似乎总是导致数组越界错误。
Convert.ToChar(buffer[i]);
byte
byte[]
BitConverter.ToChar(buffer, i)
有人建议我如何在.Net 2.0中将字节转换为字符吗?
如果你有一个 byte 那么您必须假设该字符是ASCII。 char 是Unicode 16。ASCII的前128个代码值直接映射到Unicode。所以试试这个
char
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 是字节数。