2011-12-11 44 views
-2

我需要將MimeMessage轉換爲字節數組,但轉換某些字符時編碼不正確。代碼lookis這樣的:從MimeMessage到字節數組的轉換

// message is MimeMessage 
ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
message.writeTo(baos); 
byte[] bytes = baos.toByteArray(); 

這種轉換不能正常工作,作爲輸出我receving錯誤格式的電子郵件正文:

<html xmlns=3D"http://www.w3.org/1999/xhtml" xml:lang=3D"en" lang=3D"en" 
    > 
<body style=3D"background-color: #ffffff;" > 

...

3D應該不存在在這個(xmlns = 3D「http :)。我可以刪除它,但這不是一個安全的解決方案,我可能會不小心從電子郵件正文中刪除一些內容。任何提示可能會有所幫助。

+3

這與序列化無關。 – jtahlborn

回答

1

您的mime消息包含Quoted-Printable Encoding,請參見MIME RFC 1521,因此您需要在保存之前將其解碼。

你應該可以使用javax.mail.internet.MimeUtility.decode。

+0

謝謝,那就是問題所在。 – Marek