把汉字转化为16进制字符串:例如武汉这2个汉字可以转换为:66,6B,49,6C这4个十六进制字符串
但是如何把66,6B,49,6C这4个十六进制字符串转换还原为武汉这2个汉字呢?

解决方案 »

  1.   

    编码是这个:Encoding.Unicode.GetBytes
      

  2.   


    先把各个字符串转成byte,每二个byte合成一个int16,再转成char,最后连成string.
      

  3.   


    System.Text.Encoding.Unicode.GetString(new byte[] { 0x66, 0x6b,0x49,0x6c })
      

  4.   

    public   static   string   GetChsFromHex(string   hex)   
      {   
      byte[]   bytes   =   new   byte[hex.Length   /   2];   
      for   (int   i   =   0;   i   <   bytes.Length;   i++)     
      {   
      try     
      {   
      bytes[i]   =   byte.Parse(hex.Substring(i   *   2,   2),   
      System.Globalization.NumberStyles.HexNumber);   
      }     
      catch     
      {   
      }   
      }   
      System.Text.Encoding   chs   =   System.Text.Encoding.GetEncoding("gb2312");   
      return   chs.GetString(bytes);   
      }   
      

  5.   

    还要看编码方式
    UTF-8的:
    System.Text.Encoding.UTF-8.GetString(new byte[]{0x66, 0x6b,0x49,0x6c });Default的:
    System.Text.Encoding.Unicode.GetString(new byte[]{0x66, 0x6b,0x49,0x6c });
    其他自己弄
      

  6.   

    我用的Encoding.Unicode.GetBytes这样的编码方式,但是用你这个函数发现得到的不是武汉2个字哦