这个可能是Quote-Printable编码,你再查查资料吧

解决方案 »

  1.   

    Quote-Printable其原理是把一个 8 bit 的字符用两个16进制数值表示,然后在前面加“=”。所以我们看到经过QP编码后的文件通常是这个样子:=B3=C2=BF=A1=C7=E5=A3=AC=C4=FA=BA=C3=A3=A1
      

  2.   

    怎样将Quote-Printable编码的字符串转化成汉字呢?
      

  3.   

    public static final String QP_DeCode(String str)
        {
            int len = str.length();
            int i = 0;
            char c0 = '0';
            char c1 = '0';
            char c2 = '0';
            StringBuffer strbuf = new StringBuffer();
            while(i<len)
            {
                c0 = str.charAt(i++);
                if(c0=='=')
                {
                    c1 = str.charAt(i++);
                    c2 = str.charAt(i++);
                    if(c1 >= '0' && c1 <= '9')
                        c1 = (char)(c1 - '0');
                    else if (c1 >= 'A' && c1 <= 'F')
                        c1 = (char)(c1 - ('A' - 10));
                    else if (c1 >= 'a' && c1 <= 'f')
                        c1 = (char)(c1 - ('a' - 10));                if(c2 >= '0' && c2 <= '9')
                        c2 = (char)(c2 - '0');
                    else if (c2 >= 'A' && c2 <= 'F')
                        c2 = (char)(c2 - ('A' - 10));
                    else if (c2 >= 'a' && c2 <= 'f')
                        c2 = (char)(c2 - ('a' - 10));
                    c0 = (char)(c1<<4 | c2);
                    strbuf.append(c0);
                }else
                {
                    strbuf.append(c0);
                }
            }
            return new String(strbuf);
        }
      

  4.   

    我遇到的问题和你的类似
    你试试这个方法,把附件名用MimeUtility.decodeText(String attachmentFileName)解码
    String str = MimeUtility.decodeText(attachmentFileName);
    得到的str应该就对了
      

  5.   

    javamail中没有专门用于解码Quote-Printable 的函数吗?
      

  6.   

    很多朋友都使用过JavaMail进行邮件发送,在邮件正文中的乱码容易解决。但邮件主题的乱码无论怎样转码总是显示一堆乱码。到底应该怎么处理呢? 
    JavaMail中的邮件主题需要进行BASE64编码,格式形如: 
    =?GB2312?B?xPq1xMPcwuvS0b6t1tjWw6Osx+u+ob/stcfCvKOssqLQ3rjEw9zC66Oh?= 
      所以,直接使用msg.setSubject("中文主题"),或者msg.setSubject("中文主题".getBytes("8859_1"), "GB2312"))都一样会出现乱码。在设置邮件主题前需要将主题字串的字节编码为BASE64格式,并添加编码头,示例代码如下: 
    sun.misc.BASE64Encoder enc = new sun.misc.BASE64Encoder(); msg.setSubject("=?GB2312?B?"+enc.encode(subject.getBytes())+"?="); 
      怎么样,现在中文可以正常显示了吧。给分吧!!!
      

  7.   

    MimeUtility.decodeText(String attachmentFileName)好像只能解码把base64编码的字符串,qp编码的不起作用,有些qp字符串没有转换,有些qp字符串又变成了"??????",怎么会事?
      

  8.   

    我是考滤有此用户直接用imail的WEB方式发送邮件,这样所发邮件的符件名就是用qp编码的,用javamail收邮件时,就要将qp编码的字符串转化过来,现寻转换QP字符串的方式?
      

  9.   

    偶上面的方法转QP编码有问题吗?偶在J2ME里测试没问题呀,也可能偶测试的mail比较简单吧
    建议你看看smtp和pop3的规范你把"=?ISO-8859-1?BD=EC=.....zip" 换成"=BD=EC=.....zip"试试偶上面的转换方法
      

  10.   

    funpig(麻子) 你的方法没问题,我是想看有没有更简洁点的方式(人懒了没办法),刚才细仔看了下java api,找到一个办法:string sl="";String filename=part.getfilename(); //得到文件名StringBufferInputStream sbi=new StringBufferInputStream(filename); //转换stringInputStream is=MimeUtility.decode(sbi,"quoted-printable"); //解码byte buff[]=new byte[80];int a=is.read(buff); //从inputstream中读出内容sl=new String(buff); //得到string
      

  11.   

    哈哈,不错!偶的那个是用在J2ME里的,谁叫J2ME要自己写呢。
      

  12.   

    讨厌的编码,标题即有base64,又有Quote-Printable,还有的干脆就不编码的,这还好,处理处理就算了,最可气的是什么发件人,发件人也是这样,处理起来太麻烦了,不知道各位有什么好的处理办法???
      

  13.   

    我现在有个问题,象下面这段:
    =?ISO-8859-1?Q?Fw: Fw: =B3=AC=BC=89=CC=A9=87=F8=8E=9B=B8=E7~ ?=
    中有两个Fw:,这怎么办呢?