【问题标题】:MimeMessage Content Type javaMimeMessage 内容类型 java
【发布时间】:2023-04-04 10:35:01
【问题描述】:
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

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

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

【问题讨论】:

  • 这可能与 Word 的“智能”引号有关 - 我不确定您可以做很多事情,除非您通过 Notepad++ 等文本编辑器过去。

标签: java jakarta-mail mime-types


【解决方案1】:

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

评论者说得对,这个问题是微软的智能引号问题,一般不能正确粘贴,你可以写一个regular expression to replace them;但这是针对那些特定字符的特定解决方法,不会处理一般情况。

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

【讨论】:

    猜你喜欢
    • 2012-10-19
    • 2019-03-02
    • 1970-01-01
    • 1970-01-01
    • 2017-11-08
    • 1970-01-01
    • 2016-02-20
    • 2020-06-29
    • 2019-10-05
    相关资源
    最近更新 更多