日期:2014-05-18  浏览次数:20774 次

byte[]转换为string,然后又将string转换byte[]数据怎么会少了一位?急..
我首先将byte[]转换为string,然后又把这个string转成byte[],原来byte[]长度是42,转换回来之后变成了41, 数据怎么少了一位?

------解决方案--------------------
开始那个 byte[] 怎么来的?
看看开始几个字节是否有区别

可能 BOM 的缘故
------解决方案--------------------
你理解 Default 是什么意思吗?通常在.net是unicode。

那么很简单,在string传递、计算过程中,不符合unicode规则的内容被过滤掉了,剩下的是正常的unicode内容。

你用这种方式“转换”,没有足够的根据!
------解决方案--------------------
我给你打个比方吧:商店里进了10头猪,制作了40个猪蹄,卖出了5个猪蹄,请问还剩多少头猪?

你的思路类似这种。要知道中间的所谓转换加工的内涵,否则不要滥用什么“转换”。
------解决方案--------------------
218被过滤掉了,呵呵
------解决方案--------------------
学习了
------解决方案--------------------
Encoding.GB2312
------解决方案--------------------
BitConverter.ToString得到的十六进制字符串是以'-'隔开的,如果你不要'-',那么

C# code
string strData = BitConverter.ToString(bytes).Replace("-","");