2013-03-19 57 views
0
StringBuffer messageText = new StringBuffer(); 
messageText.append("<style type=\"text/css\">" + 
        "#message p {some style }" + 
        "</style>"); 
messageText.append("<p>"); 
(L1)messageText.append("abc’s email level…def");    
messageText.append("</p>"); 
message.setContent(messageText.toString(), "text/html;"); 
Transport.send(message); 

当我运行代码发现两个不同的输出变化。MimeMessage内容类型java

我首先在微软的word中输入了这条消息abc’s email level…def,然后将它复制到eclipse编辑器中。当我运行电子邮件中的程序消息是这样的东西不同abc?s email level?def

但是,当我在eclipse编辑器中输入此消息abc’s email level…def然后我在电子邮件中看到相同的消息。

我应该在代码中,即使我复制从Microsoft Word东西电子邮件收到同一消息改变...

+0

这可能与Word的“智能”引号有关 - 我不确定有很多你可以做的,除非你通过文本编辑器如Notepad ++过去。 – 2013-03-19 15:42:58

回答

0

这是几乎可以肯定你的编辑器(MS-Word和Eclipse中之间的编码问题,在这种情况下)和你的程序。您需要验证您正在从MS-Word复制并粘贴到eclipse的内容在双方都是UTF-8,我怀疑它不是。

该评论是正确的,这个问题是微软的智能报价,它通常不正确粘贴的问题,你可以写regular expression to replace them;但这是针对这些特定字符的特定工作,并且不会处理一般情况。

根本原因几乎肯定是您从MS-Word粘贴的内容与您的Java代码期望的内容之间的编码不匹配。您可以检查您的eclipse设置以验证您是否使用UTF-8作为默认设置,检查您的字设置以验证源文档也是UTF-8。