邮件解码,一般分为base64和quoted-printable,在网上曾搜索过,但未找到C#版的(可能是未努力去找),只找到C++和C两个版本的。在这里,俺把C#版的quoted-printable解码发布出来,供大家分享:
1
quoted-printable解码#region quoted-printable解码
2
private string QPUnEncryCode(string source)
3
{
4
source=source.Replace ("=\r\n","");
5
int len=source.Length ;
6
string dest=string.Empty ;
7
int i=0;
8
while(i<len)
9
{
10
string temp=source.Substring (i,1);
11
if(temp=="=")
12
{
13
int code=Convert.ToInt32 (source.Substring (i+1,2),16);
14
if(Convert.ToInt32 (code.ToString (),10)<127)
15
{
16
dest+=((char)code).ToString ();
17
i=i+3;
18
}
19
else
20
{
21
dest+=System.Text.Encoding.Default.GetString(new byte []
{Convert.ToByte (source.Substring (i+1,2),16),Convert.ToByte (source.Substring (i+4,2),16)}) ;
22
i=i+6;
23
}
24
}
25
else
26
{
27
dest+=temp;
28
i++;
29
}
30
}
31
return dest;
32
}
33
34
#endregion

quoted-printable解码#region quoted-printable解码2
private string QPUnEncryCode(string source)3

{4
source=source.Replace ("=\r\n","");5
int len=source.Length ;6
string dest=string.Empty ;7
int i=0;8
while(i<len)9

{10
string temp=source.Substring (i,1);11
if(temp=="=")12

{13
int code=Convert.ToInt32 (source.Substring (i+1,2),16);14
if(Convert.ToInt32 (code.ToString (),10)<127) 15

{16
dest+=((char)code).ToString ();17
i=i+3;18
}19
else 20

{21

dest+=System.Text.Encoding.Default.GetString(new byte []
{Convert.ToByte (source.Substring (i+1,2),16),Convert.ToByte (source.Substring (i+4,2),16)}) ;22
i=i+6;23
}24
}25
else26

{27
dest+=temp;28
i++;29
}30
}31
return dest;32
}33

34
#endregion
本文介绍了一种使用C#实现的quoted-printable解码方法,并提供了详细的代码示例。该方法主要用于解决电子邮件中遇到的编码问题。
1420

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



