编程教程
您现在的位置: 中国个人站长站 >> 网络编程 >> Javascript >> 教程正文 Javamail中的常见中文乱码问题与解决办法(综合)
推荐位

Javamail中的常见中文乱码问题与解决办法(综合)

中国个人站长站 Javascript 点击数: 更新时间:2007-7-28 3:45:29
在使用javamail api开发邮件服务系统时,我们常常会碰到很多中文乱码问题,下面就分别介绍如何解决这些问题。

1.发送名称含中文的附件到邮件服务器,用别的邮件接收程序接收到的附件名显示为乱码

解决办法:
在调用MimeBodyPart的setFileName()时使用Base64编码。例如:
  1. BASE64Encoder enc = new BASE64Encoder();//该类位于jre/lib/rt.jar中
  2. //fds为FileDataSource实例
  3. mbp.setFileName("=?GBK?B?"+enc.encode((fds.getName()).getBytes())+"?=");


2.接收邮件时,获取某些邮件发送程序发送的email地址,发送地址显示为乱码

解决办法:
对含有中文的发送地址,使用MimeUtility.decodeTex方法,对其他则把地址从ISO8859_1编码转换成gbk编码,见下例
  1. public static String getFrom(Message msg){
  2.     String from="";
  3.     try{
  4.       if(msg.getFrom()[0]!=null)
  5.         from=msg.getFrom()[0].toString();
  6.       if(from.startsWith("=?GB")||from.startWith(“=?gb”)){
  7.         from=MimeUtility.decodeText(from);
  8.       }else{
  9.         from=StringUtil.toChinese(from);
  10.       }
  11.     }catch(Exception e){
  12.       e.printStackTrace();
  13.     }
  14.     from=StringUtil.replaceStr(from,“<”,“<”);// replaceStr为字符串替换函数
  15.     from=StringUtil.replaceStr(from,">",">");
  16.     return from;
  17.   }
  18. ///////////////////StringUtil的toChinese方法//////////////////////////
  19. public static String toChinese(

    [1] [2] [3] 下一页

教程录入:swh    责任编辑:swh 
个人站长站与你风雨同舟!
本站所提供的资源均来源于互联网,如有侵权行为,请与本站管理员联系,我们会第一时间删除!
·如果您发现《Javamail中的常见中文乱码问题与解决办法(综合)》文章有错误,也请通知我们修改!
联系邮箱chinageren#126.com,谢谢支持!
站内搜索:
版权所有:中国个人站长站 2007-2008 未经授权禁止复制或建立镜像 客服QQ号:112731235
copyright © 2007-2008 www.ChinaGeRen.com online services. all rights reserved. 苏ICP备05000059号