java charset有哪些_有没有办法为Java的Charset名称添加别名

您可以尝试mail.mime.contenttypehandler系统属性:

In some cases JavaMail is unable to process messages with an invalid Content-Type header. The header may have incorrect Syntax or other problems. This property specifies the name of a class that will be used to clean up the Content-Type header value before JavaMail uses it. The class must have a method with this signature: public static String cleanContentType(MimePart mp,String contentType) Whenever JavaMail accesses the Content-Type header of a message,it will pass the value to this method and use the returned value instead.

一个例子是:

import java.util.Arrays;

import javax.mail.Session;

import javax.mail.internet.ContentType;

import javax.mail.internet.MimeMessage;

import javax.mail.internet.MimePart;

public class FixEncodingName {

public static void main(String[] args) throws Exception {

MimeMessage msg = new MimeMessage((Session) null);

msg.setText("test","big-5");

msg.saveChanges();

System.out.println(msg.getContentType());

System.out.println(Arrays.toString(msg.getHeader("Content-Type")));

}

public static String cleanContentType(MimePart p,String mimeType) {

if (mimeType != null) {

String newContentType = mimeType;

try {

ContentType ct = new ContentType(mimeType);

String cs = ct.getParameter("charset");

if ("big-5".equalsIgnoreCase(cs)) {

ct.setParameter("charset","big5");

newContentType = ct.toString();

}

} catch (Exception ignore) {

newContentType = newContentType.replace("big-5","big5");

}

/*try { //Fix the header in the message.

p.setContent(p.getContent(),newContentType);

if (p instanceof Message) {

((Message) p).saveChanges();

}

} catch (Exception ignore) {

}*/

return newContentType;

}

return mimeType;

}

}

当使用-Dmail.mime.contenttypehandler = FixEncodingName运行时将输出:

text/plain; charset=big5

[text/plain; charset=big-5]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值