十六进制与字符串互转

来源:互联网 发布:js 数字转化为excel列 编辑:程序博客网 时间:2024/06/08 03:04
 /// <summary>    /// 从16进制转换成汉字    /// </summary>    /// <param name="hex"></param>    /// <returns></returns>    public string GetHexUncode(string hex)    {        if (hex == null)            throw new ArgumentNullException("hex");        if (hex.Length % 2 != 0)        {            hex += "20";//空格        }        // 需要将 hex 转换成 byte 数组。        byte[] bytes = new byte[hex.Length / 2];        for (int i = 0; i < bytes.Length; i++)        {            try            {                // 每两个字符是一个 byte。                bytes[i] = byte.Parse(hex.Substring(i * 2, 2),                    System.Globalization.NumberStyles.HexNumber);            }            catch            {                throw new ArgumentException("hex is not a valid hex number!", "hex");            }        }        // 获得 GB2312,Chinese Simplified。        System.Text.Encoding chs = System.Text.Encoding.GetEncoding("gb2312");        return chs.GetString(bytes);    }    /// <summary>    /// 从汉字转换到16进制    /// </summary>    /// <param name="s"></param>    /// <returns></returns>    public static string GetHexEncode(string s)    {        if ((s.Length % 2) != 0)        {            s += " ";//空格        }        System.Text.Encoding chs = System.Text.Encoding.GetEncoding("gb2312");        byte[] bytes = chs.GetBytes(s);        string str = "";        for (int i = 0; i < bytes.Length; i++)        {            str += string.Format("{0:X}", bytes[i]);        }        return str;    }

原创粉丝点击