首页 > 代码库 > 十六进制字符串转化成字符串输出

十六进制字符串转化成字符串输出

///<summary>    /// 从16进制转换成汉字    /// </summary>    /// <param name="hex"></param>    /// <param name="charset">编码,如"utf-8","gb2312"</param>    /// <returns></returns>    public  string HexToStr(string hex, string charset)    {        if (hex == null)            throw new ArgumentNullException("hex");        hex = hex.Replace(",", "");        hex = hex.Replace("\n", "");        hex = hex.Replace("\\", "");        hex = hex.Replace(" ", "");        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            {                // Rethrow an exception with custom message.                 throw new ArgumentException("hex is not a valid hex number!", "hex");            }        }        System.Text.Encoding chs = System.Text.Encoding.GetEncoding(charset);        return chs.GetString(bytes);    }

 

public string HexToStr(string mHex) // 返回十六进制代表的字符串        {            mHex = mHex.Replace(" ", "");            if (mHex.Length <= 0) return "";            byte[] vBytes = new byte[mHex.Length / 2];            for (int i = 0; i < mHex.Length; i += 2)                if (!byte.TryParse(mHex.Substring(i, 2), NumberStyles.HexNumber, null, out vBytes[i / 2]))                    vBytes[i / 2] = 0;            return ASCIIEncoding.Default.GetString(vBytes);        }
 public string StrToHex(string mStr) //返回处理后的十六进制字符串        {            return BitConverter.ToString(            ASCIIEncoding.Default.GetBytes(mStr)).Replace("-", " ");        } 

 

十六进制字符串转化成字符串输出