if ((temp = part.getFileName()) != null)
        {
             String filename="";
             filename = new String(MimeUtility.decodeText(part.getFileName()).getBytes("ISO8859_1"),"GBK");
//上面已经转码,可是在下面:
public void  savePart(Part part,String Filename)
  {
    try
       {
         Filename =new String(Filename.getBytes("ISO8859_1"),"GBK");
//这个地方又进行了一次转码,这样做可以吗?
我在http://community.csdn.net/Expert/topic/3284/3284891.xml?temp=.6648981中直接用的是 String filename = MimeUtility.decodeText(part.getFileName()),可能是没有考虑到中文的情况,不过你也可以直接试试

解决方案 »

  1.   

    to: stonecsdn(东东)经过改正,问题依旧!还是无法实现中文乱码的问题你看看
    http://community.csdn.net/Expert/topic/2975/2975230.xml?temp=.8000757
    中回复人: cn086(清凉小雅) ( ) 信誉:100 的回答我是按照他所写的
      对了,顺便问你一下,可不可以在JAVA中自己建立一个文件名称,比如AA.CCD文件,我在里面存储信息,只有经过我的程序才能进行访问编辑,其他的任何方式不能打开,我记得VC,DELPHI可以实现。JAVA应该是可以实现的,有没有这方面的资料?(网站资料也可)目的是为了保密的需要!你是大虾!请给予指导
      

  2.   

    现在比较忙,没有时间.抱歉了.你找找其它的资料,看看有没有解决的method
      

  3.   

    没做过取附件名的,
    不过应该和处理附件名是一样的吧
    取到名字后转换:
    你把邮件在outlook里存为 .eml
    用文本打开会有:
    ------=_NextPart_001_0006_01C483B3.B8EF1F40--------=_NextPart_000_0005_01C483B3.B8EF1F40
    Content-Type: application/x-msdownload;
    name="=?iso-2022-jp?B?LRskQlJLGyhCLRskQmYmGyhCLRskQlpAMjs0eTFRSjhIRxsoQi5bVg==?=
    =?iso-2022-jp?B?ZXJ5Q0QuY29tXS5leGU=?="
    Content-Transfer-Encoding: base64
    Content-Disposition: attachment;
    filename="=?iso-2022-jp?B?LRskQlJLGyhCLRskQmYmGyhCLRskQlpAMjs0eTFRSjhIRxsoQi5bVg==?=
    =?iso-2022-jp?B?ZXJ5Q0QuY29tXS5leGU=?="
    看一下用这些描述的encode解码对不对.
      

  4.   

    想加密很简单,读取文件流,每个byte加多1或者其它算法,或者文件流前面、后面加多几个byte就可以搞定,
    推荐第一种方法,那样别人就算读用文本编辑器看也很难解得出来
      

  5.   

    =?iso-2022-jp?B?和=?=是配对的表示他们之间的字符串是用iso-2022-jp编码,
    而Content-Transfer-Encoding: base64这个表示用base64编码,所以你应该先用base64解码,再用iso-2022-jp解码,
    new sun.misc.BASE64Decoder().decodeBuffer()这个用于base64解码
    string.getBytes("iso-2022-jp")这个用于iso-2022-jp解码