㈠ 用java获取URL路径时出现非法字符
经常会在浏览器的地址栏里看到这样的字符串%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字符串
//转换成普通字符串
//必须强调的是编码方式必须正确,如的是gb2312,而google的是UTF-8
String keyWord = URLDecoder.decode("%E6%96%87%E6%A1%A3", "gb2312");
System.out.println(keyWord);
//将普通字符串转换成
//application/x-www-form-urlencoded字符串
//必须强调的是编码方式必须正确,如的是gb2312,而google的是UTF-8
String urlStr = URLEncoder.encode("文档", "gb2312");
System.out.println(urlStr);
}
}
㈡ JAVA URLDecoder.decode转码失败怎么解决
编码:java.net.URLEncoder.encode("测试","UTF-8");解码:java.net.URLDecoder.decode("%E6%B5%8B%E8%AF%95%26%3Faaa","UTF-8");
㈢ java里如何将字符转为url码
Java可以使用URLEncoder提供的转换字符的方法来对普通字符串进行转换格式,示例如下:
importjava.net.URLDecoder;
importjava.net.URLEncoder;
publicclassURLDecoderTest{
publicstaticvoidmain(String[]args)throwsException{
//将application/x-www-form-urlencoded字符串
//转换成普通字符串
//必须强调的是编码方式必须正确,如的是gb2312,而google的是UTF-8
StringkeyWord=URLDecoder.decode("%E6%96%87%E6%A1%A3","gb2312");
System.out.println(keyWord);//将普通字符串转换成
//application/x-www-form-urlencoded字符串
//必须强调的是编码方式必须正确,如的是gb2312,而google的是UTF-8
StringurlStr=URLEncoder.encode("文档","gb2312");
System.out.println(urlStr);
}
}