Java:解决收发邮件附件乱码问题
2011-11-06 14:21
423 查看
Java:解决收发邮件附件乱码问题 [ 来源:Java | 作者:Java | 时间:2007-7-20 | 去论坛] imeUtility.encodeWord是进行编码,MimeUtility.encodeWord是进行解码 无论附件中文件是什么样的字符,都可以进行正确的解码,但是当文件都是英文 文字的时候却会包错,为null,英文这个时候不支持全英文,所以这个时候应该: if(!part_FileName.endsWith("?=")) //是全英文 { 直接赋值 } else { MimeUtility.decodeWord(文件名字); } messageBodyPart.setFileName(MimeUtility.encodeWord(fileName)); 同样收中文附件时,以MimeUtility.decodeWord()将编码后的字符串解码。 字符编码及字符集转换问题 前面提到MIME要解决的另外一个问题就是将SMTP协议不支持的字节流转换成 为SMTP 协议支持的字节流。比如我们要通过邮件传输一个附件文档,该附件文档就 是一个8bit 字节流,如果简单的直接通过SMTP 发送,其最高位信息将被丢失。MIME 规定可以用两种编码方式将8bit 的字节流编码成为低于8bit 的字节流,它们分别是 BASE64 编码(BASE64 将8bit 字节流编码成6bit 字节流)和QP 编码。这两种编码 方式同样应用在对中文的编码上。例如如果邮件中文题目叫做“CVS 介绍”,那么其 编码后的形式可能为: Subject: =?gb2312?B?Q1ZTLS3QpMX0LnBwdA==?= 标题字符串以”=?”开始,以”?=”结束。”gb2312”表示字符串的字符集,而以”?”分 隔的”B”就表示此字符串的编码方式为BASE64。我们处理此标题时就要先将BASE64 编码的6bit 字节流转换为原来的8bit 字节流,再根据字符集”gb2312”转换为Java 中的 String 类型。这里可以简单的使用JavaMail 提供的MimeUtility.decodeWord()静态方法 将编码后的字符串解码。 |
相关文章推荐
- php的IMAP的应用实例(实现收发邮件、删除邮件、附件下载等功能,解决中文乱码问题)
- php的IMAP的应用实例(实现收发邮件、删除邮件、附件下载等功能,解决中文乱码问题)
- php的IMAP的应用实例(实现收发邮件、删除邮件、附件下载等功能,解决中文乱码问题)
- 使用 JavaMail 收发邮件,解决中文附件问题
- Java 使用 Velocity 发送邮件中文内容乱码问题的解决办法
- Java使用Velocity模板发送HTML格式邮件并解决中文乱码问题
- java发送邮件附件名称乱码问题
- Java邮件开发(三):解决附件名为乱码及显示友好名称
- Java邮件开发(三):解决附件名为乱码及显示友好名称
- 关于OpenSmtp邮件标题过长,附件名,用户名出现乱码问题的终及解决Dll文件
- python邮件发送(带附件,解决中文乱码问题)
- Java使用javax.mail发送邮件 解决收件人、发件人名字乱码问题
- 完美解决邮件中excel乱码问题<mac 附件乱码>
- Java 发送邮件 标题中文乱码问题的解决
- openerp 7.0邮件接收中文附件乱码问题解决办法
- 解决zabbix邮件内容为附件和zabbix图中出现中文乱码问题
- 彻底解决PHPMailer收发邮件邮件标题邮件内容发件人乱码的问题
- 【转】Kettle发送邮件步骤遇到附件名是中文名变成乱码的问题解决办法
- javamail 收发邮件 乱码问题解决
- java&nbsp;mail&nbsp;解决附件中文名乱码问题