string a="\xb4\x41\x23";
byte[] b=Encoding.ASCII.GetBytes(a);为什么得出的b中三个数分别为63、65、35、而不是180、65、35呢,如何才能得到想要的数?

解决方案 »

  1.   

    Encoding.Unicode.GetBytes(a);
    编码格式从ASCII改为Unicode,不过这样的话,你给的那个字符串就占了6个字节了。
      

  2.   

    这可能是因为你使用了ASCII的缘故,如果你使用UNICODE就好一些,但返回就是180、0、65、0、35了。ASCII对\xb4处理成双字节了。
      

  3.   

    我想得到的是字节数组byte [],不好意思,小弟对这种转换很不熟悉,请再帮帮忙
      

  4.   

    string a="\xb4\x41\x23";
    byte[] b=new byte[3];
    b[0]=(byte)a[0];
    b[1]=(byte)a[1];
    b[2]=(byte)a[2];
      

  5.   

    byte[] b = new byte[3];
      

  6.   

    chengyuming2004的方法不错,我试了下正确,谢谢啦。但是有点麻烦,不知道有没有函数可以方便的实现这个过程,呵呵,等到晚上还没有人回答就结帖吧
      

  7.   

    private byte[] stringTobyte(string s)
    {
    ArrayList al=new ArrayList();
    for(int i=0;i<s.Length;i++)
    {
    al.Add((byte)s[i]);
    }
    return (byte[])al.ToArray(System.Type.GetType("System.Byte"));
    }
    byte[] b=stringTobyte("\xb4\x41\x23");
    你要保证你传过去的字符串里面的数值都在byte精度范围内。