使用Java Mail API无法正确读取中文字体

时间:2014-01-12 17:20:45

标签: java api email

我有一个电子邮件监听器,可以从gmail中读取邮件。当我从包含中文字符的Outlook客户端发送邮件时,编码设置为gb2312,这会导致Java mail api中part.getContent()的结果不正确。

如果从客户端编码设置为中文Big5程序正常工作但我们无法更改Outlook客户端中的编码。有没有办法从Java Mail API读取,但设置内容类型或任何替代方法来获取正确的内容??????

2 个答案:

答案 0 :(得分:1)

https://community.oracle.com/message/5440489#5440489

使用GBK字符集读取所有GB2312文件的文件,因为gb2312是GBK的子集。

答案 1 :(得分:0)

以下应该有点运气:

String content = mail. ...

// The bytes as sent, and then interpreted as gb2312:
byte[] bytes = content.getBytes("gb2312");

// Now correctly interprete the bytes as Big5:
content = new String(bytes, "Big5");