首页 > 代码库 > java URLEncoder 和Base64.encode()

java URLEncoder 和Base64.encode()

参考:

http://www.360doc.com/content/10/1103/12/1485725_66213001.shtml (URLEncode)

http://blog.csdn.net/uikoo9/article/details/27981219

计算机中的数据都是二进制的,不管是字符串还是文件,而加密后的也是二进制的,

而我们要看到的往往是字符串,本文就介绍了将byte[]转为各种进制以及base64编码。

 

是一种编码方式,可以理解为复杂的进制,很多算法加密后输出的都是byte[],而这个byte[]对我们显示的形式是不友好的(乱码),

所以一般都是转为base64的,当然也可以转为其他进制。

public static void main(String[] s){
String sss = "Aa123Aa程序";
byte[] bytes = null;
try {
bytes = sss.getBytes("UTF-8");
for(byte b: bytes){
System.out.print(b+"(#)");
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}


String encode;
try {

encode = Base64.encode(bytes);
System.out.println("\nBase64.encode 结果: " + encode);
byte[] bytess = Base64.decode(encode);
for(byte b: bytess){
System.out.print(b+"(#)");
}
String sss2 = new String(bytess, "UTF-8");
System.out.print("\nsss2 === "+ sss2);

sss = "Aa123 Aa程序#程序*程序+and程序";
encode = java.net.URLEncoder.encode(sss, "UTF-8");
System.out.println("\njava.net.URLEncoder 结果: " + encode);
String sss3 = URLDecoder.decode(encode, "UTF-8");
System.out.println("\njava.net.URLDecoder 结果: " + sss3);
} catch (Exception e) {
e.printStackTrace();
}

运行结果:

65(#)97(#)49(#)50(#)51(#)65(#)97(#)-25(#)-88(#)-117(#)-27(#)-70(#)-113(#)
Base64.encode 结果: QWExMjNBYeeoi+W6jw==
65(#)97(#)49(#)50(#)51(#)65(#)97(#)-25(#)-88(#)-117(#)-27(#)-70(#)-113(#)
sss2 === Aa123Aa程序
java.net.URLEncoder 结果: Aa123+Aa%E7%A8%8B%E5%BA%8F%23%E7%A8%8B%E5%BA%8F*%E7%A8%8B%E5%BA%8F%2Band%E7%A8%8B%E5%BA%8F

java.net.URLDecoder 结果: Aa123 Aa程序#程序*程序+and程序

java URLEncoder 和Base64.encode()