您的位置:首页 > 编程语言 > C#

C# 对Quoted-Printable进行解码的方法

2012-09-07 18:19 246 查看
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();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: