Ich habe eine C# (.Net Core 1.1) -App, die prüfen muss, ob eine URL gültig ist. Ich habe die Uri.IsWellFormedUriString() verwendet, die ziemlich gut funktioniert, aber daran zweifle, dass unter dem Wert false zurückgegeben wird. Es scheint mir, dass die URL perfekt ist?Uri.IsWellFormedUriString() gibt false für eine korrekte URL zurück
Uri.IsWellFormedUriString("http://www.test.com/search/Le+Venezuela+b%C3%A9n%C3%A9ficie+d%27importantes+ressources+naturelles+%3A+p%C3%A9trole%2C+gaz%2C+mines", UriKind.Absolute)
verwendete ich den gleichen URL mit der PHP-Funktion unter dem sagt die URL richtig formatiert ist:
function filter_var($url, FILTER_VALIDATE_URL)
bin ich etwas fehlt hier?
Das ist jedoch nicht die ganze Geschichte: '" http://www.test.com/x%2C "' meldet 'wahr' auch. '" http://x.com/%C3%A9x%2C "' ist kaputt, aber das Entfernen des '% C3', des'% A9', des 'x' oder des'% 2C' macht es in Ordnung. Ich bin verwirrt. –
Sie haben Recht, und @JonSkeet auch. Also vielleicht ist es keine schlechte Idee, die URL zu entsichern, bevor man überprüft, ob es wohlgeformt ist – Pikoh
@JonSkeet dein zweites Beispiel uncaping und es wieder entkommt gibt es 'http: // x.com /% C3% A9x,', so denke ich das ist, was als richtig entgangene uri gilt – Pikoh