首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenPop.NET -修改电子邮件中的字符

OpenPop.NET -修改电子邮件中的字符
EN

Stack Overflow用户
提问于 2012-11-14 19:23:35
回答 1查看 2.7K关注 0票数 2

我正在使用OpenPop库读取电子邮件。我有一个问题:当阅读电子邮件的正文时,库会修改一个字符。请参见以下示例:

电子邮件正文:

DiseıO

代码c#:

代码语言:javascript
复制
OpenPop.Pop3.Pop3Client objPOP3 = new OpenPop.Pop3.Pop3Client();
OpenPop.Mime.Message message = default(OpenPop.Mime.Message);
OpenPop.Mime.MessagePart plainTextPart = default(OpenPop.Mime.MessagePart);
string bodyMailTxt = "";

objPOP3.Connect(Host, Port, UseSSL);
objPOP3.Authenticate(User, Password);

message = objPOP3.GetMessage(1);
plainTextPart = message.FindFirstPlainTextVersion();
bodyMailTxt = plainTextPart.GetBodyAsText();

代码vb:

代码语言:javascript
复制
Dim objPOP3 As New OpenPop.Pop3.Pop3Client
Dim message As OpenPop.Mime.Message
Dim plainTextPart As OpenPop.Mime.MessagePart
Dim bodyMailTxt As String = ""

ObjPOP3.Connect(Host, Port, UseSSL)
ObjPOP3.Authenticate(User, Password)

message = objPOP3.GetMessage(1)
plainTextPart = message.FindFirstPlainTextVersion()
bodyMailTxt = plainTextPart.GetBodyAsText()

bodyMailTxt值为“Dise f±o”,它取代了ƒ (拉丁文小写字母F whit钩子),代替了f (拉丁文小写字母F)。

我得做些什么才能不发生这种事?

EN

回答 1

Stack Overflow用户

发布于 2012-11-14 22:56:15

OpenPop.Mime.MessagePart类的源代码来看,它看起来像是plainTextPart.GetBodyAsText(),得到了这样的文本,return BodyEncoding.GetString(Body),其中BodyEncodingEncoding类型的公共属性,Body是包含消息的原始字节数组的公共属性。

我不知道,也不能真正测试,但可能是消息用来解码文本的默认编码与发送文本时使用的编码不一样。在调用plainTextPart.Encoding = Encoding.ASCII方法之前,您可能能够看到通过尝试.GetBodyAsText()plainTextPart.Encoding = Encoding.UTF8plainTextPart.Encoding = Encoding.Unicode得到的结果。

链接到MessagePart源文件:

http://hpop.svn.sourceforge.net/viewvc/hpop/trunk/OpenPop/Mime/MessagePart.cs?revision=377&view=markup

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13385831

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档