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();
}
本文介绍Quoted-Printable (QP) 编码在Email系统中的应用及其编码方式,并提供了一个C#语言实现的QP解码示例。

2094

被折叠的 条评论
为什么被折叠?



