c# 无法匹配 HTML 特殊字符

本文关键字:HTML 特殊字符 | 更新日期: 2023-09-27 17:56:13

我必须匹配2个网址,第一个来自MySQL db,第二个来自Html页面。如果我将两者作为字符串进行比较

var match = Regex.Match(href.Attributes["href"].Value, testString, RegexOptions.IgnoreCase);

match.Success = false. 两个字符串都像this : myUrl/rollcontainer-weiß但匹配。成功仍然是虚假的。

我尝试添加HttpUtility.HtmlEncode来检查两个字符串,结果得到:第一个字符串myUrl/rollcontainer-wei&#233,第二个字符串myUrl/rollcontainer-wei&ß

在这种情况下,我怎样才能match.Success = true

c# 无法匹配 HTML 特殊字符

例如,尝试使用此函数。

static void Main(string[] args)
{
    bool test = Test("http://myUrl.com/rollcontainer-Wei&ß", "http://myUrl.com/rollcontainer-wei&ß");
}
public static bool Test(string url1, string url2)
{
    Uri uri1 = new Uri(HttpUtility.HtmlDecode(url1)); 
    Uri uri2 = new Uri(HttpUtility.HtmlDecode(url2));
    var result = Uri.Compare(uri1, uri2,
        UriComponents.Host | UriComponents.PathAndQuery,
        UriFormat.Unescaped, StringComparison.OrdinalIgnoreCase);
    return result == 0;
}