我从IMAP服务器接收到一条消息,该消息使用JavaMail使用Content-Transfer-Encoding: 8bit
进行了编码。据我所知,服务器正确地输出了消息并且可以对其进行解码,因为telnet
和Thunderbird都显示消息,该消息包含德语短语“ Mit freundlichenGrüßen”(“真诚地属于您”),具体如下:是。
但是,当我使用JavaMail检索MimeMessage
并使用以下代码获取其InputStream
时,它将返回Mit freundlichen GrüÃen
(第二个{后有一个不可见的0x9F
字节) {1}}):
Ã
如果我尝试使用MimeMessage msg = imapFolder.getMessages() [0]; // Just for demo purposes
StringBuilder builder = new StringBuilder ();
String line;
try (
BufferedReader reader = new BufferedReader (
new InputStreamReader (msg.getInputStream ())
)
) {
while ((line = reader.readLine ()) != null) {
builder.append (line).append ("\n");
}
} catch (IOException e) {
// ...
}
的{{1}}函数获取邮件的内容,情况将变得“更糟”;然后返回MimeMessage
(两个getRawInputStream ()
之后是不可见的Mit freundlichen GrüÃÂen
字节,而0x83
之后是不可见的Ã
字节)。
但是,据我所知,这两个函数都应返回正确的消息。
我应该做
0x9F
或
Â
(但这在我尝试时不起作用)还是我(和/或服务器)在做其他明显错误的事情?
答案 0 :(得分:0)
阅读一行后,尝试进行转换为时已晚。使用public class MariosPostgreSQL94Dialect extends PostgreSQL94Dialect {
public MariosPostgreSQL94Dialect() {
super();
this.registerColumnType(Types.OTHER, "json");
}
。