/// <summary>
///  quoted-printable解码程序.
/// </summary>
/// <param name="encoding">解码目标字符集</param>
/// <param name="data">需要解码的字符串</param>
/// <returns></returns>
public static string QDecode(System.Text.Encoding encoding,string data)
{
MemoryStream strm = new MemoryStream(System.Text.Encoding.Default.GetBytes(data)); int b = strm.ReadByte(); MemoryStream dStrm = new MemoryStream(); while(b > -1){
// Hex eg. =E4
if(b == '='){
byte[] buf = new byte[2];
strm.Read(buf,0,2);
if(!(buf[0] == '\r' && buf[1] == '\n')){
int val = int.Parse(System.Text.Encoding.Default.GetString(buf),System.Globalization.NumberStyles.HexNumber);
//int val = int.Parse(System.Text.Encoding.Default.GetString(buf));
byte[] temp=new Byte[]{(byte)val};
dStrm.Write(temp,0,temp.Length);
}
}
else{
string encodedChar = encoding.GetString(new byte[]{(byte)b});
byte[] d = System.Text.Encoding.Default.GetBytes(encodedChar);
dStrm.Write(d,0,d.Length);
} b = strm.ReadByte();
}
return encoding.GetString(dStrm.ToArray());
} /// <summary>
/// 字符串Base64编码  字符串输出
/// </summary>
/// <param name="sInput">需要进行编码的字符串</param>
/// <returns>编码后的字符串</returns>
public string StringToBase64(string sInput)
{
byte[] bInput=UnicodeEncoding.Default.GetBytes(sInput);
string sOutput=Convert.ToBase64String(bInput);
return sOutput;
}
/// <summary>
/// Base64字符串解码  字符串输出
/// </summary>
/// <param name="sInput">Base64字符串</param>
/// <returns>解码后的字符串</returns>
public string Base64ToString(string sInput)
{
try
{
byte[] bOutput=Convert.FromBase64String(sInput);
return UnicodeEncoding.Default.GetString(bOutput);
}
catch
{
return String.Empty;
}
}