2012-02-08 103 views
0

这就是我与javax.mail.BodyPart.writeTo(..)越来越:如何javax.mail.BodyPart内容为UTF-8干净的文本转换?

Content-Type: text/plain; charset=windows-1252 
Content-Transfer-Encoding: quoted-printable 

some text *again* 

=97 
Bobby 

On Wed, Feb 8, 2012 at 11:51 AM, Alex Johnson <[email protected]> wrot= 
e: 

> let's try again 
> and again 

我要清理这个文本,并将其转换为UTF-8,以便接收正是这一点:

some text *again* 

-- 
Bobby 

我当然,我不是第一个面临这个问题/任务的人。你知道任何可以提供帮助的Java库吗?

+0

谷歌甚至给他们的算法检测引用文本的电子邮件的专利:http://www.google.com/patents/US7222299 – yegor256 2012-02-08 21:41:10

+0

相似的问题:http://stackoverflow.com/questions/278788 – yegor256 2012-02-08 21:43:39

回答

1

删除包含消息只是一个字符串操作的问题,我敢肯定,你可以使用正则表达式或任何明白这一点你自己。

只需调用getContent方法,就可以访问正文部分的内容,不需要头文件,并可以为您处理的字符集编码 编码。

这就是你想要的?

+0

那么,“fiture那是你自己“的一部分是我所担心的。我仍然希望为此目的找到一些图书馆...... – yegor256 2012-02-08 21:32:09

+0

一般来说,这个问题可能非常困难,因为没有关于如何在新消息的文本中格式化包含消息的标准。通常,但不总是,包含的消息的文本的每一行将由前面有“>”。通常情况下,但并非总是如此,所包含的信息将带有鲜明的线在你的例子开始。但不同的邮件程序会以不同的方式格式化该行 – 2012-02-08 22:34:46

+0

(继续)最后,你将不得不弄清楚你的解决方案需要多“完美”,并提出一些适合你关心的案例的启发式方法。同样,java.util.regex可能会有所帮助。你可能会发现,一次读取一行文本比较容易(使用StringReader)并将每行与模式匹配,复制要保留的行并丢弃其他行。 – 2012-02-08 22:35:40