本帖最后由 looklzg1108 于 2010-09-13 10:15:06 编辑

解决方案 »

  1.   

     Encoding.ASCII.GetString 这个不对,这个无法处理二进制文件中的ASCII不可见字符
      

  2.   

    用System.IO.FileStream的read()来读取二进制数据到字节数组
      

  3.   

    二进制与字符串的转换,可以用Base64编码
    Convert.FromBase64String
    Convert.ToBase64String
      

  4.   

    //读取
    msgContent.content = Encoding.ASCII.GetString(szContent, 0, szContent.Length);//读取的二进制内容转化为string
    =>
    msgContent.content = Convert.ToBase64String(szContent);//读取的二进制内容转化为string
    //写入端
    szContent = System.Text.Encoding.ASCII.GetBytes(msgConReq.content);
    =>
    szContent = Convert.FromBase64String(msgConReq.content);
      

  5.   

    ASCII码的范围是很有限的
    任意二进制数据与ASCII码显然不存在对应关系
    转为ASCII码再转回当然会丢数据一般二进制数据转为字符串,是使用十六进制
    除了Base64编码以外,还可以用十六进制,就是有点麻烦
    转字符串可以用,BitConverter.ToString
    转回就没有直接的方法了,要遍历逐字节转