C# 对Quoted-Printable进行解码的方法
Quoted-Printable简称QP, 在Email系统中使用。它通常用于少量文本方式的8位字符的编码
QP的编码方式比较简单,它的算法是:读一个字符,如果ASCII码大于127,即字符的 第8位是1的话,
进行编码,否则忽略(有时也对7位字符编码)
在c#中可以使用这个方法来对Quoted-Printable进行解码:
//Quoted-Printable 解码 public static string DecodeQP(string codeString) { //编码的字符集 string mailEncoding = "GB2312"; StringBuilder strBud = new StringBuilder(); for (int i = 0; i < codeString.Length; i++) { if (codeString[i] == '=') { if (Convert.ToInt32((codeString[i + 1] + codeString[i + 2]).ToString(), 16) < 127) { strBud.Append( Encoding.GetEncoding(mailEncoding).GetString( new byte[] { Convert.ToByte((codeString[i + 1] + codeString[i + 2]).ToString(), 16) })); i += 2; continue; } if (codeString[i + 3] == '=') { strBud.Append( Encoding.GetEncoding(mailEncoding).GetString( new byte[] { Convert.ToByte((codeString[i + 1].ToString() + codeString[i + 2].ToString()), 16), Convert.ToByte((codeString[i + 4].ToString() + codeString[i + 5].ToString()), 16) })); i += 5; continue; } } else { strBud.Append(codeString[i]); } } return strBud.ToString(); }