html敏捷Returns难以理解的文字

html agility Returns incomprehensible text

当我使用 html 敏捷时,我将编码设置为 UTF-8。它在阅读某些文本时效果很好,但在某些情况下 returns 类似于以下文本的文本。

۱۳۹۹-۱۱-۲۰ ۲۳:۲۷

我的代码大致如下:

 HtmlWeb web2 = new HtmlWeb();
 web2.AutoDetectEncoding = false;
 web2.OverrideEncoding = Encoding.UTF-8;
 var doc = await this.web2.LoadFromWebAsync(url);
  date = doc.DocumentNode
                    .SelectNodes("/html/body/div[2]/main/div[2]/div[2]/div[1]/div[1]/div[2]/span[1]")
                    .First().InnerText;

我应该补充一点,它在没有编码的情况下也有同样的问题。

有人知道问题出在哪里吗?

这些是 HTML 个代表原始文本的实体。如果这是在 Web 应用程序中,您可以使用 System.Net 命名空间中的 HttpUtility.HtmlDecode。如果这是在 Web 应用程序之外,您可以使用 WebUtility.HtmlDecode,也来自 System.Net 命名空间。这会将 HTML 个实体改回相应的文本。

运行 它通过 fiddle 导致

۱۳۹۹-۱۱-۲۰ ۲۳:۲۷

https://dotnetfiddle.net/J7YXZM

using System;
using System.Net;

public class Program
{
    public static void Main()
    {
        var encoded = "۱۳۹۹-۱۱-۲۰ ۲۳:۲۷";
        var decoded = WebUtility.HtmlDecode(encoded);
        Console.WriteLine(decoded);
    }
}

使用HtmlDecode

Converts a string that has been HTML-encoded for HTTP transmission into a decoded string.

To encode or decode values outside of a web application, use the WebUtility class.

例子

var asd = HttpUtility.HtmlDecode("۱۳۹۹-۱۱-۲۰ ۲۳:۲۷");
Console.WriteLine(asd);

输出

۱۳۹۹-۱۱-۲۰ ۲۳:۲۷

Full Demo Here