【发布时间】:2013-10-18 17:29:20
【问题描述】:
我正在 Java Play 框架中开发一个小型邮件客户端,并且我正在使用 SendGrid 来处理电子邮件。当收到一封电子邮件时,它会被发布到一个 url,然后我使用 JsonNode 解析发布的表单。现在的问题是该表单的“to”、“from”、“subject”字段由 SendGrid 自动转换为 UTF-8。现在问题来了:显然,电子邮件正文是用“ISO-8859-1”编码的。我需要将该字符串转换为“UTF-8”。我已经尝试了几种方法,但很可能我做错了什么,因为我总是得到包含重音/变音符号的法语或德语单词的奇怪字符(例如“Zürich”出来为“Z?rich”。我用于转换的代码如下:
byte[] msg = message.getBytes("ISO-8859-1");
byte[] msg_utf8 = new String(msg, "ISO-8859-1").getBytes("UTF-8");
message = new String(msg_utf8, "UTF-8");
能否请您提出解决方案?非常感谢您!
【问题讨论】:
-
什么是“消息”? stackoverflow.com/questions/652161/… 适合你吗?
-
我从已发布的表单(通过 SendGrid)中获取字符串消息。不,我已经尝试过了。因此,根据电子邮件标题,我直接得到了这个消息字符串,它在 ISO-8859-1 中。而且我必须将其转换为 UTF-8,以便将其存储在数据库中。
-
你能把邮件头作为字节数组吗?为了帮助您,您的问题应该很容易重现。
-
我得到的消息字符串是这样的: String message = form.get("text");其中最终 DynamicForm form = form().bindFromRequest();所以我真的不明白你的意思?
-
没有人通过Java中的SendGrid成功接收邮件吗?
标签: java email encoding utf-8 playframework