char*怎么转byte并保持源数据不受encode影响? 用Python读的文件数据,在C里是char*,在C#成了string,但是C的好处就是char*就是原始的8位的数据;但是string转成byte[]却必须选一种编码方式,结果原来的数据就变得乱七八糟。选ASCII比如0xFC就变成了63,怎么才能使0xFC在byte[]里就是0xFC呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用unicode转就是0xFCbyte []byt=System.Text.Encoding.Unicode.GetBytes(str); 它们的二进制编码完全相反63: 0011 11110xFC: 1111 1100如果是通过网络传输的,那么会有个字节顺序(大端与小端)的问题采用Little-endian模式的CPU对操作数的存放方式是从低字节到高字节,而Big-endian模式对操作数的存放方式是从高字节到低字节。例如,32bit宽的数0x12345678的存放方式如下http://blog.chinaunix.net/uid-21372424-id-119781.html解决办法:传输端或接收端按字节转换成同一种标准,可用IPAddress.NetworkToHostOrder() 搞定。 char[] CharArray = s.ToCharArray(); byte[] ByteArray = new byte[CharArray.Length]; for (int i = 0; i < CharArray.Length; i++) { ByteArray[i] = Convert.ToByte(CharArray[i]); } 大家帮忙看看这个调用C#库函数进行加解密方法的代码错在哪? C# 如何转换 十六进制 datagridview添加合计行 父窗体转交权限给子窗体 一个关于自定义控件的问题 一个有关资源文件的问题 参数怎么给默认值,马上就接贴!! 谁能提供一个 winform 下用水晶报表打印的例子 为什么我的MDI子窗口显示不了? 要在Asp.net中用多列的、可编辑的DropDownList??? 如何在定时器中实现一个sleep功能 MouseWheel事件(鼠标滚轮事件)如何重写
byte []byt=System.Text.Encoding.Unicode.GetBytes(str);
63: 0011 1111
0xFC: 1111 1100
如果是通过网络传输的,那么会有个字节顺序(大端与小端)的问题
采用Little-endian模式的CPU对操作数的存放方式是从低字节到高字节,而Big-endian模式对操作数的存放方式是从高字节到低字节。例如,32bit宽的数0x12345678的存放方式如下
http://blog.chinaunix.net/uid-21372424-id-119781.html解决办法:传输端或接收端按字节转换成同一种标准,可用IPAddress.NetworkToHostOrder()
char[] CharArray = s.ToCharArray();
byte[] ByteArray = new byte[CharArray.Length];
for (int i = 0; i < CharArray.Length; i++)
{
ByteArray[i] = Convert.ToByte(CharArray[i]);
}