有两种方式,供大家参考
/// <summary>
/// 编译字符串
/// </summary>
/// <param name="strUnicode"></param>
/// <returns></returns>
public static string FromUnicodeToAscii(string strUnicode)
{
try
{
if (String.IsNullOrEmpty(strUnicode))
{
return String.Empty;
}
UnicodeEncoding Unicode = new UnicodeEncoding();
int byteCount = Unicode.GetByteCount(strUnicode);
byte[] origbytes = new byte[byteCount];
origbytes = Unicode.GetBytes(strUnicode);
StringBuilder strDecoded = new StringBuilder();
for (int i = 0; i < byteCount; i++)
{
byte b = origbytes[i];
//translate each byte into two digits of hexa.
strDecoded.Append(b.ToString("X2"));
//chDest[i] = Convert.ToChar(b);
}
return strDecoded.ToString();
}
catch (Exception err)
{
Console.WriteLine(err.Message+" "+err.StackTrace);
return "*********异常";
}
}
/// <summary>
/// 反编译字符串
/// </summary>
/// <param name="strAscii"></param>
/// <returns></returns>
public static string FromAsciiToUnicode(string strAscii)
{
try
{
if (String.IsNullOrEmpty(strAscii))
{
return String.Empty;
}
StringBuilder strNew = new StringBuilder();
UnicodeEncoding Unicode = new UnicodeEncoding();
byte[] currbytes = new byte[2];
for (int i = 0; i < strAscii.Length; i = i + 4)
{
for (int j = 0; j < 2; j++)
{
//each two hexa digits are becoming one byte
currbytes[j] = Convert.ToByte(strAscii.Substring(i + j * 2, 2), 16);
}
strNew.Append(Unicode.GetString(currbytes));
}
return strNew.ToString();
}
catch (Exception err)
{
return "******异常";
}
}
/// <summary>
/// 字符串简单加密
/// </summary>
public class EncodeAndDecode
{
/// <summary>
/// Base64加密
/// </summary>
/// <param name="codeName">加密采用的编码方式</param>
/// <param name="source">待加密的明文</param>
/// <returns></returns>
public static string EncodeBase64(Encoding encode, string source)
{
string enstring = "";
byte[] bytes = encode.GetBytes(source);
try
{
enstring = Convert.ToBase64String(bytes);
}
catch
{
enstring = source;
}
return enstring;
}
/// <summary>
/// Base64加密,采用utf8编码方式加密
/// </summary>
/// <param name="source">待加密的明文</param>
/// <returns>加密后的字符串</returns>
public static string EncodeBase64(string source)
{
return EncodeBase64(Encoding.UTF8, source);
}
/// <summary>
/// Base64解密
/// </summary>
/// <param name="codeName">解密采用的编码方式,注意和加密时采用的方式一致</param>
/// <param name="result">待解密的密文</param>
/// <returns>解密后的字符串</returns>
public static string DecodeBase64(Encoding encode, string result)
{
string decode = "";
byte[] bytes = Convert.FromBase64String(result);
try
{
decode = encode.GetString(bytes);
}
catch
{
decode = result;
}
return decode;
}
/// <summary>
/// Base64解密,采用utf8编码方式解密
/// </summary>
/// <param name="result">待解密的密文</param>
/// <returns>解密后的字符串</returns>
public static string DecodeBase64(string result)
{
return DecodeBase64(Encoding.UTF8, result);
}
}