如何解码charset中的文本并转换为Java中的另一个charset?

时间:2015-06-08 07:01:01

标签: java utf-8 character-encoding javamail

我正在使用Java mail API通过Imap从gmail检索电子邮件,并在使用AngularJS的网页中显示。

当我使用javax.mail.Message.getContent()获取电子邮件的数据时,返回带有charset的对象 - gb2312。

但是我的网页使用的是UTF-8字符集,所以虽然我在网页上遇到了一些奇怪的字符。

我需要将gb2312(或任何)charset转换为utf-8才能在网页中正确显示。

任何人都可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

您可以像这样创建一个新的String并将其转换为UTF-8:

String s = new String(bytes, "OriginalCharset");
byte[] utfBytes = s.getBytes("UTF-8");

我认为Java本身使用UTF-8,但明确地做它会更好。