㈠ java base64解码 怎么是乱码呢
会乱码的原因是你的编码不一致导致的
php中的urlencode的编码是和系统编码一致的(比如windows默认gb2312,ubuntu默认utf-8)
所以首先需要确定你的系统编码,之后根据得到的系统编码在调用java的decode方法的时候,将这个编码传入(考虑到你的例子中有繁体字,所以,建议你使用utf-8编码),以下是我使用utf-8编码的例子(php环境是ubuntun下)
㈡ java问题:一个字符串base64解码后再zip解压
importorg.apache.commons.codec.binary.Base64;
publicclassc{
publicstaticvoidmain(String[]args)throwsException{
//Stringbase64Str=
//"UEsDBC0AAAAIAAaPJkfS5clx//////////+/mU+//////////AAAABAAEASwAAANUAAAAAAA==";
//BASE64Decoderdecoder=newBASE64Decoder();
//byte[]b=decoder.decodeBuffer(base64Str);//解码
//Stringresult=decompressByteArrayToString(b,"UTF-8");
//System.out.println(result);
StringbaseString=Base64.encodeBase64String("我爱中国".getBytes("UTF-8"));
System.out.println(""我爱中国"的Base64编码为:"+baseString);
Stringbase64Str="5oiR54ix5Lit5Zu9";
byte[]bytes=Base64.decodeBase64(base64Str);
System.out.println("解码后:"+newString(bytes,"UTF-8"));
}
}
㈢ Java Base64 直接获取文件后缀
import sun.misc.BASE64Encoder; import sun.misc.BASE64Decoder; // 将 s 进行 BASE64 编码 public static String getBASE64(String s) { if (s == null) return null; return (new sun.misc.BASE64Encoder()).encode( s.getBytes() ); }敞饥搬渴植韭邦血鲍摩 // 将 BASE64 编码的字符串 s 进行解码 public static String getFromBASE64(String s) { if (s == null) return null; BASE64Decoder decoder = new BASE64Decoder(); try { byte[] b = decoder.decodeBuffer(s); return new String(b); } catch (Exception e) { return null; } }
㈣ 怎么用JAVA对一个文件进行base64编码
JAVA对一个文件进行base64编码
importsun.misc.BASE64Encoder;
importsun.misc.BASE64Decoder;
//将s进行BASE64编码
publicstaticStringgetBASE64(Strings){
if(s==null)returnnull;
return(newsun.misc.BASE64Encoder()).encode(s.getBytes());
}
//将BASE64编码的字符串s进行解码
(Strings){
if(s==null)returnnull;
BASE64Decoderdecoder=newBASE64Decoder();
try{
byte[]b=decoder.decodeBuffer(s);
returnnewString(b);
}catch(Exceptione){
returnnull;
}
}
㈤ Java:为什么传输图片是常用base64字符串转码,而不是直接传输byte[]呢求解
先说说base64吧:对于图片来说,一个字节占八位,如果都换成byte[]的话,会很长,不便于传输,那么就把没6个字节来对应一个新的字符(如010011是19,对应base64编码的T),,所以这个目的主要是精简数据,便于传输;
另外常用的用途是:做不严格的加密用,比如常见的磁力链接,你懂的;因为它相对于严格加密省时省力,速度快,况且可恢复(如果用MD5就不行)