我需要查找URL是否已编码。由于输入是动态的,如果我知道正则表达式来检查它将会很有帮助。
示例 -
www.test.com/?t=%E3%83%81%E3%82%B7%E3%83%BA%E3%83%B3%E3%83%9D%E3%83%BC%E3%83% AB
提前致谢
答案 0 :(得分:2)
您只需使用URLDecoder检查网址是否包含编码部分,而不是构建自定义正则表达式:
class UrlTest {
public static void main(String[] args) throws java.io.UnsupportedEncodingException {
String url = "http://example.com/%20foo";
if(url.equals(java.net.URLDecoder.decode(url, "UTF-8"))) {
System.out.println("URL didn't contain encoded parts.");
} else {
System.out.println("URL contained encoded parts.");
}
}
}
答案 1 :(得分:0)
如果你问的是因为你想要编码网址(如果它还没有被编码),那么最简单的方法是解码然后重新编码。这样你就可以保证最终得到一个编码的网址。
答案 2 :(得分:0)
//正则表达式尝试使用任何URL编码,或..用于目录遍历
*%[0-9A-FA-F] + |。。\ \
答案 3 :(得分:-4)
只需找一个'%'后跟[0-F] - 你就会知道。