MIMessage内容类型java StringBuffer messageText=new StringBuffer(); messageText.append(“”)+ “#消息p{some style}”+ ""); messageText.append(“

MIMessage内容类型java StringBuffer messageText=new StringBuffer(); messageText.append(“”)+ “#消息p{some style}”+ ""); messageText.append(“,java,jakarta-mail,mime-types,Java,Jakarta Mail,Mime Types,”); (L1)messageText.append(“abc的电子邮件级别…def”); messageText.append(“”); message.setContent(messageText.toString(),“text/html;”); 传输。发送(消息); 当我运行代码时,发现输出有两种不同的变体 我首先在microsoft word中键入这条消息,然后将其复制到eclipse编辑器中。当我运行程序时,电子邮件中的消息与此不同abc的电子邮件级别?def 但是当我在eclip

”); (L1)messageText.append(“abc的电子邮件级别…def”); messageText.append(“

”); message.setContent(messageText.toString(),“text/html;”); 传输。发送(消息); 当我运行代码时,发现输出有两种不同的变体

我首先在microsoft word中键入这条消息,然后将其复制到eclipse编辑器中。当我运行程序时,电子邮件中的消息与此不同
abc的电子邮件级别?def

但是当我在eclipse编辑器中键入此消息时,我在电子邮件中看到了相同的消息


即使我从microsoft word复制了一些内容,我也应该修改代码以接收电子邮件中的相同消息…

这几乎肯定是您的编辑器(本例中是MS word和Eclipse)和您的程序之间的编码问题。您需要验证从MS Word复制和粘贴到eclipse的内容在两侧都是UTF-8,我怀疑不是

评论者是对的,这个问题是微软的智能报价的问题,通常粘贴不正确,你可以写一个;但这是针对这些特定字符的特定解决方案,不会处理一般情况


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

这可能与word的“智能”引号有关-我不确定您能做多少,除非您通过文本编辑器(如记事本+)通过。
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);