①URL(Uniform Resource Locator)统一资源定位器
URL的基本组成:协议、主机名、端口号、资源名。
例如,http://www.abc.com:8080/index.html http默认端口号是80
②URL编码规则:
a.将空格转换为加号(+)
b.对0-9,a-z,A-Z之间的字符保持不变
c.对于所有其他的字符,用这个字符的当前字符编码在内存中的十六进制格式表示,并在每个字节前加上一个百分号(%).如字符"+"用%2B表示,字符"="用%3D表示,字符"&"用%26表示,每个中文字符在内存中占两个字节,字符"中"用%D6%D0表示,字符"国"用%B9%FA表示。
d.对于空格也可以直接使用其十六进制编码方式,即用%20表示,而不是将它转换为加号("+")
③java.net包中提供了URLEncoder和URLDecoder这两个类,来实现URL编码和解码
package URL;
import java.net.*;
public class URLDemo {
/**
* @param args
*/
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
String strNew;
strNew=URLEncoder.encode("中国","utf-8");
String strNew2=URLEncoder.encode("中国","unicode");
System.out.println(strNew);
System.out.println(strNew2);
String input="http://www.altavista.com/cgi-bin/" + "query?pg=q&kl=XX&stype=stext&q=%2B%22Java+I%2FO%22&search.x=38&search.y=3";
String output=URLDecoder.decode(input,"utf-8");
String output2=URLDecoder.decode("%E4%B8%AD%E5%9B%BD","utf-8");
System.out.println(output);
System.out.println(output2);
}
}
输出结果为:
%E4%B8%AD%E5%9B%BD
%FE%FF%4E%2D%56%FD
http://www.altavista.com/cgi-bin/query?pg=q&kl=XX&stype=stext&q=+"Java I/O"&search.x=38&search.y=3
中国