解决方案 »

  1.   


    string str = "abcd0123";
    byte[] bytes = System.Text.Encoding.Default.GetBytes(str);
      

  2.   

     
               string test = "3B";
                byte temp = Convert.ToByte(test, 16);
      

  3.   

    byte[] bt = System.Text.Encoding.Default.GetBytes(str1);
    string str2 = System.Text.Encoding.Default.GetString(bt);
    其中Default可以替换成GetEncoding("GB2312")或GetEncoding("UTF-8")等
    转byte的格式和转回来的格式要一致才行
      

  4.   

    如果你的abcd0123是16进制数
    用2楼的代码
    不过需要先自己substring将字符串分解
      

  5.   

    “按字面值”不需要走encoding,直接
    "abcd0123".Select(c => (byte)c).ToArray();
      

  6.   

    我原始数据的大小,转换成字符串之后是成2倍关系的,即一个byte(例如0x10)分为字符'1' ,'0',所以要将字符串解析回字节,大小应该缩小一半。
    src_size 1577
    res_size: 3154
    我现在试试楼上各位的方法,感谢各位这么迅速地回复
      

  7.   

    string str2=SubString(str1,0,2);
    就是从第0个位置取出2个.
    自己做个循环,传递个i到0的位置去
      

  8.   

    看你用什么编码。记得编码解码都用同一个就好了。
    ls的基本都用Default,对于英文还好,对于中文,是很危险的,不同系统默认编码是不同的,用default编码后如果将数据传输到别的机器可能再用default恢复成字符串就是乱码。
    应该养成使用比如UTF8等编码的习惯而不使用Default