方法一:URLEncoder.encode()
URLEncoder.encode().这个方法把所有非字母数字字符改变为%序列(除了空格、下划线、连字符、点和星号),如果把整个url给encode的话,=,&这些字符也会编码。所以最好逐部分编码;
实例:
http://baidu.com?name=han&content=hello world则这样处理
url = “http://baidu.com?name=han&content=”+URLEncoder.encode(“hello world”,“utf-8”);
注:但是测试后发现是把空格转换为了+号,很是无奈。
实例:
public static void main(String[] args) throws UnsupportedEncodingException {
String s = "06.27";
String t[] = s.split("\\.");
for(int i = 0; i < t.length; i++){
System.out.println(t[i]);
}
String str1 = t[0];
String str2 = t[1];
System.out.println(str1+"---"+str2);
String dinnerDateTime = URLEncoder.encode(t[0]+"月"+t[1]+"日"+" "+10+":"+30,"utf-8");
System.out.println("dinnerDateTime="+dinnerDateTime);
System.out.println(URLDecoder.decode(dinnerDateTime));
}
实例结果:
06
27
06---27
dinnerDateTime=06%E6%9C%8827%E6%97%A5+10%3A30
06月27日+10:30
方法二:
在执行之前写上 url = url.replaceAll(" ", "%20"); 把空格替换掉
注:之后解决方法是直接把对应的 空格 换成 %20。