gpt4 book ai didi

c# - Uri.IsWellFormedUriString() 对于正确的 URL 返回 false

转载 作者:太空宇宙 更新时间:2023-11-03 22:59:29 25 4
gpt4 key购买 nike

我有一个 C# (.Net Core 1.1) 应用程序需要检查 URL 是否有效。我使用了 Uri.IsWellFormedUriString() ,它工作得很好,但对下面返回 false 的这个有疑问。在我看来,该 URL 完全有效?

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)

我在下面的 PHP 函数中使用了完全相同的 URL,该 URL 格式正确:

function filter_var($url, FILTER_VALIDATE_URL)

我是不是漏掉了什么?

最佳答案

可能问题是 url 被转义了。使用 UnscapeDataString 试试这个:

string urlencoded= "http://www.test.com/search/Le+Venezuela+b%C3%A9n%C3%A9ficie+d%27importantes+ressources+naturelles+%3A+p%C3%A9trole%2C+gaz%2C+mines";
var isWellFormed=Uri.IsWellFormedUriString(
Uri.UnescapeDataString(urlencoded),
UriKind.Absolute);

编辑

当您使用 .net 核心时,也许您需要使用 System.Net.WebUtility.UrlDecode

关于c# - Uri.IsWellFormedUriString() 对于正确的 URL 返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43871897/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com