Ich arbeite an einer Anwendung, in der wir URLs validieren müssen, überprüfen, ob es mit http (wenn nicht, http 'vorangestellt) und schließlich codieren sie. Mein Problem ist, dass URLs, die wir erhalten, alle Arten von Dingen enthalten können - ungültig/gültig, aber nicht beginnend mit http/bereits codiert/gültig, aber Leerzeichen oder Unicode-Zeichen enthalten. Derzeit verwende ich die URLValidator-Klasse, validiert jedoch keine Leerzeichen oder Unicode-Zeichen. Im Anschluss ist mein Code:Validieren und codieren Sie URLs mit Unicode-Zeichen in Java
if (url != null && !url.trim().isEmpty()) {
url = URLDecoder.decode(url, "UTF-8");
if (!url.matches("^(https?)://.*$")) {
url = "http" + url;
}
UrlValidator validator = new UrlValidator();
if (url.contains("(")) {
if (validator.isValid(url.substring(0, url.indexOf("(")))) {
return getEncodedSiteUrl(url);
}
return null;
}
if (validator.isValid(url)) {
return getEncodedSiteUrl(url);
}
}
Aber dieser Code filtert alle gültigen URLs, die einen Raum/Unicode-Zeichen enthalten. Ich denke nicht, dass ich URLValidator benutzen sollte, um alle Arten von URLs zu betrachten, die wir bekommen. Kann mir bitte jemand helfen? Vielen Dank.
Danke für den Link. Aber es löst mein Problem nicht. Es validiert URLs nicht wie - "http://www.newsnow.co.uk/h/Sport/Football/Premier League/Transfer News" – pooja
Sogar Stackoverflow erlaubt es nicht. Ich schätze aufgrund von Leerzeichen. :) – pooja
URL mit Leerzeichen sollte codiert werden, bevor Sie sie verwenden. – lsiva