用java获取URL路径时出现非法字符

Python018

用java获取URL路径时出现非法字符,第1张

经常会在浏览器的地址栏里看到这样的字符串%E6%96%87%E6%A1%A3

这就是被编码后的字符串,下面就讨论一下java 的url编码与解码问题

java.net.URLDecoder.decode(String s,String enc)

将application/x-www-form-urlencoded字符串转换成普通字符串。

java.net.URLEncoder.decode(String s,String enc)

将普通字符串转换成application/x-www-form-urlencoded字符串

代码示例:

import java.net.URLDecoder

import java.net.URLEncoder

public class URLDecoderTest {

public static void main(String[] args) throws Exception {

//将application/x-www-form-urlencoded字符串

//转换成普通字符串

//必须强调的是编码方式必须正确,如baidu的是gb2312,而google的是UTF-8

String keyWord = URLDecoder.decode("%E6%96%87%E6%A1%A3", "gb2312")

System.out.println(keyWord)

//将普通字符串转换成

//application/x-www-form-urlencoded字符串

//必须强调的是编码方式必须正确,如baidu的是gb2312,而google的是UTF-8

String urlStr = URLEncoder.encode("文档", "gb2312")

System.out.println(urlStr)

}

}

将字符串转换成URL可以使用创建一个URL对象,并将字符串赋给这个URL对象。参考代码如下:String str = "填写字符串的链接地址" try {URL url = new URL(str) } catch (MalformedURLException e) {e.printStackTrace() }注意,创建URL对象会有异常,所以使用try处理抛出的异常。