求肋:64位解密问题
先看代码:
import java.util.List;
import javax.mail.Address;
import javax.mail.Message;
import javax.mail.Multipart;
public class TestRec {
private static String base64Decoder(String s) throws Exception {
sun.misc.BASE64Decoder decoder = new sun.misc.BASE64Decoder();
byte[] b = decoder.decodeBuffer(s);
return (new String(b));
}
public static void main(String[] args) {
// TODO Auto-generated method stub
String host="pop3.163.com";
String name="weasel100";
String password="4206211983";
Receiver rec=new Receiver();
String st="?gbk?Q?=B5=DA6=D5=C2___Interne?= =?gbk?Q?t=D3=A6=D3=C3=B7=FE=CE=F1=C6=F7=B5=C4=C5=E4=D6=C3_.ppt?=";
String st2="?gb2312?B?yc+w4C5zd2Y=?="; //上班.swf3
try {
String[] add=st2.split(" ");
String stadd="";
for(int i=0;i<add.length;i++){
stadd=stadd+add[i].substring(11, add[i].lastIndexOf("?=") - 1);
System.out.println("原文:"+stadd);
}
String fileName = base64Decoder(stadd);
System.out.println("译文:"+fileName);
} catch (Exception e) {
e.printStackTrace();
}
}
}
以上是我用来测试的代码, String st2可以正常译出来,它是GK2312,但是我有另外一个文件名被加密后却做成了GBK,而且是中文,字段中有空格。我应当如何才能译出来。如字段 String st,它的源文件名是:第6章 Internet应用服务器的配置 .ppt