自制Pop3邮件接收系统(一):利用MatchEvaluator实现HZ的解码
2002-12-12 09:11
633 查看
要作自制的Pop3邮件接收系统,就要自己处理邮件的编码
大家可能会收到以下的“乱码”,
~{4s<R:C#,NRJG~}qiushuiwuhen~{#,;6S-@45=~}csdn.
实际上是简体中文的HZ编码,在邮件中经常会出现,
因为邮件协议体系通常是七位的,而汉字却是双字节的
所以就使用以下的方法对其进行解码
String hzDecode(Match m){
String tmp=m.ToString();
byte[] ret=new byte[tmp.Length-4];
for(int i=0;i<ret.Length;i++)
ret[i]=(byte)(tmp[i+2]+128);
return Encoding.GetEncoding(936).GetString(ret);
}
使用范例:
string strHz="~{4s<R:C#,NRJG~}qiushuiwuhen~{#,;6S-@45=~}csdn.";
strHz=Regex.Replace(strHz,@"~/{(.+?)~/}",new MatchEvaluator(hzDecode));
Response.Write("/nHZ Decode="+strHz);
随便带上编码的代码(可用来发送邮件用)
String hzEncode(Match m){
byte[] tmp=Encoding.GetEncoding(936).GetBytes(m.ToString());
StringBuilder ret=new StringBuilder("~{");
for(int i=0;i<tmp.Length;i++)
ret.Append((char)(tmp[i]-128));
ret.Append("~}");
return ret.ToString();
}
使用范例:
string strHz="大家好,我是qiushuiwuhen,欢迎来到csdn.";
strHz=Regex.Replace(strHz,@"[^/x00-/xff]+",new MatchEvaluator(hzEncode));
Response.Write("<xmp>HZ Encode="+strHz);
原理:使用MatchEvaluator的回调(CallBack)函数执行Regex的替换操作
大家可能会收到以下的“乱码”,
~{4s<R:C#,NRJG~}qiushuiwuhen~{#,;6S-@45=~}csdn.
实际上是简体中文的HZ编码,在邮件中经常会出现,
因为邮件协议体系通常是七位的,而汉字却是双字节的
所以就使用以下的方法对其进行解码
String hzDecode(Match m){
String tmp=m.ToString();
byte[] ret=new byte[tmp.Length-4];
for(int i=0;i<ret.Length;i++)
ret[i]=(byte)(tmp[i+2]+128);
return Encoding.GetEncoding(936).GetString(ret);
}
使用范例:
string strHz="~{4s<R:C#,NRJG~}qiushuiwuhen~{#,;6S-@45=~}csdn.";
strHz=Regex.Replace(strHz,@"~/{(.+?)~/}",new MatchEvaluator(hzDecode));
Response.Write("/nHZ Decode="+strHz);
随便带上编码的代码(可用来发送邮件用)
String hzEncode(Match m){
byte[] tmp=Encoding.GetEncoding(936).GetBytes(m.ToString());
StringBuilder ret=new StringBuilder("~{");
for(int i=0;i<tmp.Length;i++)
ret.Append((char)(tmp[i]-128));
ret.Append("~}");
return ret.ToString();
}
使用范例:
string strHz="大家好,我是qiushuiwuhen,欢迎来到csdn.";
strHz=Regex.Replace(strHz,@"[^/x00-/xff]+",new MatchEvaluator(hzEncode));
Response.Write("<xmp>HZ Encode="+strHz);
原理:使用MatchEvaluator的回调(CallBack)函数执行Regex的替换操作
相关文章推荐
- 自制Pop3邮件接收系统(二):利用TcpClient得到Pop3的邮件列表数据
- 利用 POP3 协议和套接字编写接收邮件的程序
- 用 PHP 实现 POP3 邮件的解码(1)
- 利用Transporter Suite实现从第3方邮件系统迁移到Exchange 2007
- C#实现发送和接收pop3邮件方法
- 利用Apache commons net 包实现简单的POP3邮件
- 用Visual C#实现POP3邮件接收程序
- 基于C#平台下利用POP3和SMTP协议的邮件归档系统
- 利用Transporter Suite实现从第3方邮件系统迁移到Exchange 2007
- 利用javamail和POP3、SMTP协议实现邮件收发(转)
- C#邮件接收系统核心代码(接收POP3邮件IMAP邮件)
- 【利用javamail和POP3、SMPT协议实现邮件的收发】
- 【利用javamail和POP3、SMPT协议实现邮件的收发】
- 封装 JMail 4.4 的 POP3 为 .Net 组件 (.dll 程序集),实现 "邮件(附件) 到达" 等 "事件,c#接收邮件
- 用PHP实现POP3邮件的解码
- 邮件系统安全篇:GCMAil邮件系统怎样利用DNS黑名单高效实现反垃圾邮件过滤
- 运用C#实现POP3邮件接收程序
- .Net 利用 Pop3 Client 接收邮件 [译]
- 利用SMTP虚拟服务器实现不同邮件系统之间的通讯
- 用 PHP 实现 POP3 邮件的解码(1)