string new1= "?\0\0R%?";
string temp = new1;
char[] char1 = temp.ToCharArray(0, temp.Length);
int count = temp.Length;
            for (int i = 0; i < count; i++)
            {
                //转换成码值
                Int16 aa = Convert.ToInt16(char1[i]);   
               //转换成16进制          
                string test = aa.ToString("X");
             }
为什么Int16 aa = Convert.ToInt16(char1[i]); 从ASC码转换成码值会出错,比如本来结果应该是224的码值却转换成了63。请高手指点,谢谢

解决方案 »

  1.   

    用byte aa = (byte)(char1[i]); 转换结果还是一样不对,我看了那些不对的字符,他们的16进制都是带字母的比如E0,8B等等,请指点
      

  2.   

    试试char test = (char)aa;看看
      

  3.   

    我要转换的是从客户端接收的数据,用int i = stream.Read(bytes, 0, bytes.Length);
    temp = System.Text.Encoding.ASCII.GetString(bytes, 0, i);接受到以后是ASCII,这种形式"?\0\0R%?",要转换成16进制的才可以正确判断数据,请问如何实现,谢谢
      

  4.   

    "?\0\0R%?"
    换成ascii 就是
    0x3f,0,0,0x52,0x25,0x3f ,
    不知你要什么??
      

  5.   

    他那边传过来的是2 0xE0 0 0 0x52 0x25 0x8B  但我这边接受到以后解析出来却把EO和8B都转换成了3F不知道为什么,请指教
      

  6.   

    ascii 一般用7位最大就是7F,它肯定不是ascii,你需要了解它的编码方式