/// <summary>
        /// 字符串转ASCII码
        /// </summary>
        /// <param name="str"></param>
        /// <returns>16进制,以空格分隔</returns>
        public static string Text2Ascii(string str)
        {
            byte[] textbuf = Encoding.Default.GetBytes(str);

            string textAscii = string.Empty;//用来存储转换过后的ASCII码

            for (int i = 0; i < textbuf.Length; i++)
            {
                if (!string.IsNullOrEmpty(textAscii)) textAscii += " ";
                textAscii += textbuf[i].ToString("X");
            }

            return textAscii;
        }

        /// <summary>
        /// ASCII码转字符串
        /// </summary>
        /// <param name="asciiCode">16进制,以空格分隔</param>
        /// <returns></returns>
        public static string Ascii2Text(string asciiCode)
        {
            bool isKong = asciiCode.Contains(" ");
            int len = isKong ? asciiCode.Length / 3 + 1 : asciiCode.Length / 2;

            string textStr = string.Empty;

            int k = 0; //字节移动偏移量

            byte[] buffer = new byte[len]; //存储变量的字节
            for (int i = 0; i < len; i++)
            {
                //每两位合并成为一个字节
                buffer[i] = byte.Parse(asciiCode.Substring(k, 2), System.Globalization.NumberStyles.HexNumber);

                k = isKong ? k + 3 : k + 2;
            }

            //将字节转化成汉字
            textStr = Encoding.Default.GetString(buffer);

            return textStr;
        }

 

有些事情,没经历过不知道原理,没失败过不明白奥妙,没痛苦过不了解真谛。临渊羡鱼,不如退而结网!