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);

当我运行代码时,发现输出有两种不同的变体。

我首先在 microsoft word 中键入此消息abc’s email level…def,然后将其复制到 eclipse 编辑器中。当我运行电子邮件中的程序消息时,就像这样abc?s email level?def

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

即使我从 microsoft word 复制某些内容,我应该在代码中更改什么以在电子邮件中接收相同的消息...

4

1 回答 1

0

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

评论者说得对,这个问题是微软的智能引号问题,一般不能正确粘贴,你可以写一个正则表达式来替换它们;但这是针对那些特定字符的特定解决方法,不会处理一般情况。

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

于 2013-03-19T15:55:08.890 回答