public class HEX
    {
        /// <summary>
        /// 普通字符串转16进制
        /// </summary>
        /// <param name="data"></param>
        public static string StringToHex(string data)
        {
            byte[] b = Encoding.UTF8.GetBytes(data); ;
            string result = string.Empty;
            for (int i = 0; i < b.Length; i++)
            {
                result += Convert.ToString(b[i], 16).ToUpper();
            }
            return result;
        }


        /// <summary>
        /// 16进制转普通字符串
        /// </summary>
        /// <returns></returns>
        public static string HexToString(string Hexdata)
        {
            string result = string.Empty;
            byte[] arrByte = new byte[Hexdata.Length / 2];
            int index = 0;
            for (int i = 0; i < Hexdata.Length; i += 2)
            {
                arrByte[index++] = Convert.ToByte(Hexdata.Substring(i, 2), 16);
            }
            result = System.Text.Encoding.UTF8.GetString(arrByte);
            return result;
        }
    }

测试

string s = "lw123abc测试信息!@#¥%……&*()——+";
            Console.WriteLine("原数据:\t\t" + s);
            String s2 = HEX.StringToHex(s);
            Console.WriteLine("Hexdata:\t" + s2);
            Console.WriteLine("data:\t\t" + HEX.HexToString(s2));

C# 16进制转字符串,字符串转16进制_c#