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);
当我运行代码时发现两个不同的输出变体。
我首先在微软词中键入此消息abc’s email level…def
,然后将其复制到eclipse编辑器中。当我运行电子邮件中的程序消息与此abc?s email level?def
但是当我在eclipse编辑器中输入此消息abc’s email level…def
时,我在电子邮件中看到了相同的消息。
即使我从Microsoft Word中复制了某些内容,我还应该在代码中更改以在电子邮件中接收相同的消息...
答案 0 :(得分:0)
这几乎肯定是您的编辑器(在本例中为MS-Word和Eclipse)与您的程序之间的编码问题。您将要验证您正在复制并从MS-Word粘贴到eclipse的内容是双方的UTF-8,我怀疑它不是。
评论者说这个问题是微软的智能引用是正确的,它通常不能正确粘贴,你可以写一个regular expression to replace them;但这是针对这些特定字符的特定工作,并且不会处理一般情况。
根本原因几乎可以肯定是您从MS-Word粘贴的内容与您的Java代码所期望的内容之间的编码不匹配。您可以检查您的日食设置以验证您是否使用UTF-8作为默认设置,检查您的单词设置以验证源文档也是UTF-8。