java 附件 乱码

编程入门 行业动态 更新时间:2024-10-15 18:22:44

java 附件 <a href=https://www.elefans.com/category/jswz/34/1768993.html style=乱码"/>

java 附件 乱码

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()静态方法 将编码后的字符串解码。

更多推荐

java 附件 乱码

本文发布于:2024-02-07 09:11:17,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1755799.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:乱码   附件   java

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!