/// <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;
}
有些事情,没经历过不知道原理,没失败过不明白奥妙,没痛苦过不了解真谛。临渊羡鱼,不如退而结网!