最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
关于JavaMail中发送中文附件标题乱码的说明
时间:2022-07-02 18:10:45 编辑:袖梨 来源:一聚教程网
以前在CSDN上发过一篇帖子说可能是一个BUG, 本想直接回复那个帖子, 可能由于 CSDN的改版? 那篇帖子我现在无法回复, 只能在这里做一个说明了.
收到SUN工程师的回复, 给了我一个相应的FAQ链接, 实在抱歉当时没有去查询FAQ:-)
http://java.**su*n.com/products/javamail/FAQ.html#encodefilename
原因是在MIME的相应规范中(RFC2047等)说明了附件标题必须是US-ASCII字符, 所以在发送中文标题的附件时需要编码成US-ASCII字符, 有两种编码方式: B (BASE64), Q (Quoted-Printable), 这些方法在MimeUtility里都已经做了封装, 所以在发送附件时使用方法:
setFileName(MimeUtility.encodeText(fileName, "GBK"));
不过现在邮件系统对此处实现的不是很一致, 所以可能有个别邮件系统收到的是乱码, 可根据情况自己选择相应的编码方式.
如以前提过的直接取ISO8859-1的字节:setFileName(new String(file.getName().getBytes(), "ISO8859-1"));
收到SUN工程师的回复, 给了我一个相应的FAQ链接, 实在抱歉当时没有去查询FAQ:-)
http://java.**su*n.com/products/javamail/FAQ.html#encodefilename
原因是在MIME的相应规范中(RFC2047等)说明了附件标题必须是US-ASCII字符, 所以在发送中文标题的附件时需要编码成US-ASCII字符, 有两种编码方式: B (BASE64), Q (Quoted-Printable), 这些方法在MimeUtility里都已经做了封装, 所以在发送附件时使用方法:
setFileName(MimeUtility.encodeText(fileName, "GBK"));
不过现在邮件系统对此处实现的不是很一致, 所以可能有个别邮件系统收到的是乱码, 可根据情况自己选择相应的编码方式.
如以前提过的直接取ISO8859-1的字节:setFileName(new String(file.getName().getBytes(), "ISO8859-1"));
相关文章
- 羞羞漫画网页登录入口-羞羞漫画免费登录看漫画 02-25
- 羞羞漫画-全网登录入口界面 02-25
- 麻花豆MV高清在线-麻花豆TV免费观看 02-25
- 漫蛙-漫蛙manwa2漫画宝藏 02-25
- 推特官网-网页版登陆入口 02-25
- 漫蛙下载安卓最新版本_安卓端安全下载入口与安装步骤详解 02-25