㈠ 用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);
}
}