请问如何将字符串转换成十六进制的字符串?
比如把“中国China”转换成 “1F 0A BB CA 24 03 C5 A3 97” 这样的形式?

解决方案 »

  1.   

    关键问题是C#中的字符串是Unicode的,如何拆分成一个个的字节?
      

  2.   

    你那串十六进纸转换的不对吧?如果对,那就是我这个错了,不必看了。:)
    string a = "中国China";
    byte[] vv = System.Text.ASCIIEncoding.Default.GetBytes(a);
      

  3.   

    你的十六进制是什么编码哈?
    gb2312中国China -> D6 D0 B9 FA 43 68 69 6E 61
      

  4.   

    //-_-#public string StrToHex(string mStr) //返回处理后的十六进制字符串
    {
        string vReturn = "";
        byte[] vBytes = Encoding.Convert(Encoding.UTF8, Encoding.GetEncoding("GB2312"),
            Encoding.UTF8.GetBytes(mStr));
        foreach (byte vByte in vBytes)
            vReturn += " " + vByte.ToString("X2");
        if (vReturn.Length > 0) vReturn = vReturn.Remove(0, 1);
        return vReturn;
    }
      

  5.   

    //换成这句简单点 
        byte[] vBytes = ASCIIEncoding.Default.GetBytes(mStr);
      

  6.   

    //此方法可将字符串转换16进制,我抓页面内容一直在用
    public static string GetGB2312Code(string strContent)
            {
                Encoding gb2312 = Encoding.GetEncoding("gb2312");
                byte[] bytes = gb2312.GetBytes(strContent);
                string strCode = "%";
                for (int i = 0; i < bytes.Length; i++)
                {
                    strCode += System.Convert.ToString(bytes[i], 16);
                    if ((i + 1) != bytes.Length)
                        strCode += "%";
                }
                return strCode;
            }
      

  7.   

    string ret = System.BitConverter.ToString(System.Text.UnicodeEncoding.GetEncoding("GB2312").GetBytes("中国China"));
      

  8.   

    this.textBox1.Text = System.BitConverter.ToString(System.Text.UnicodeEncoding.GetEncoding("GB2312").GetBytes("中国China")).Replace("-", " ");