为部分utf8编码的URL查找解析API

Jar*_*Par 8 .net c# uri

在解析某些网页的HTML(最值得注意的是,任何Windows实时页面)时,我会遇到以下格式的大量网址.

HTTP\X3A\X2F\x2fjs.wlxrs.com\x2fjt6xQREgnzkhGufPqwcJjg\x2fempty.htm

这些似乎是部分UTF8转义字符串(\ x2f = /,\ x3a =:等等...).是否有.Net API可用于将这些字符串转换为System.Uri?似乎很容易解析,但我试图避免今天建立一个新的车轮.

Tim*_*mwi 3

您发布的内容不是有效的 HTTP。这样的话,当然HttpUtility.UrlDecode()行不通。但无论如何,您都可以将其转回正常文本,如下所示:

string input = @"http\x3a\x2f\x2fjs.wlxrs.com\x2fjt6xQREgnzkhGufPqwcJjg\x2fempty.htm";
string output = Regex.Replace(input, @"\\x([0-9a-f][0-9a-f])",
    m => ((char) int.Parse(m.Groups[1].Value, NumberStyles.HexNumber)).ToString());
Run Code Online (Sandbox Code Playgroud)

但请注意,这假设编码是 Latin-1 而不是 UTF-8。您提供的意见在这方面尚无定论。如果需要UTF-8才能工作,则需要稍长的路线;您必须将字符串转换为字节,并用过程中的相关字节替换转义序列(可能需要 while 循环),然后使用Encoding.UTF8.GetString()生成的字节数组。