BitConverter uchar?
如何将字节数组转换为无符号字符(0到255,而不是-127到127)
如果我没有弄错,那么BitConverter只有BitConverter.ToChar没有给出我想要的结果。
谢谢您。
- @daniela.white nah,在.net中称为System.Char是一个由16位组成的utf-16代码单元。当然,它可以是代理项对的下半部分或上半部分,也可以对组合字符进行编码。但是.NET中的Char不是8位。
- 你要什么类型的?有符号8位整数在C中称为sbyte(框架中称为System.SByte)。无符号8位整数称为byte(System.Byte)。你说char,但在c中,关键字Char用于范围从0到65535的utf-16代码单元。
这取决于你的用法。BitConverter.ToChar用于将字节数组中的2个字节转换为Unicode字符(将其视为反序列化)。在.NET中,char数据类型用于表示实际的Unicode字符,因此它包含2个字节。
如果您的目标只是得到一个介于0和255之间的整数数组,那么您的字节数组正是您所需要的。
字节数组(byte[]已经是一个从0到255的项目数组。.NET中的char是多字节的,因为它们是Unicode。在.NET中没有类似于uchar的东西。
可以将字节数组转换为字符串
1
| string str = System.Text.Encoding.ASCII.GetString(bytes); |
或铸造/转换为char:
1
| char[] chars = Array.ConvertAll(bytes, Convert.ToChar); |
- 如果通过127所有字节都在0范围内,则使用。其他,选择"编码"如string str = (new System.Text.Encoding("Windows-1252")).GetString(bytes);。