c# - 解析html时被问号替换的字符

标签 c# encoding html-agility-pack

我正在使用 HtmlAgilityPack 读取解析 html 文件并提取一些文本:

static void Main(string[] args)
        {
            var webGet = new HtmlWeb();
            var document = webGet.Load("http://port.ro/");

            var programs = from program in document.DocumentNode.Descendants()
                           where program.Name == "a" && program.Attributes["href"] != null && program.InnerText.Trim().Length > 0
                           select program.InnerText ;

            foreach (string s in programs)
            {
                Console.WriteLine(s);
            }

            Console.ReadLine();
        }

我的问题是该网站包含像 à 这样的字符,当我打印它们时,它们被替换为 ?

当我打印文本字符 à 替换为 a 或像 à 一样打印时,我需要做什么?

最佳答案

您是否尝试使用或设置站点所需的编码。这应该可以帮助您获得正确的文本

var document = webGet.Load("http://port.ro/", Encoding.UTF8);//check your encoding

上面一个是针对htmldocument的

对于 HtmlWeb Try this :

var web = new HtmlWeb
{
    AutoDetectEncoding = false,
    OverrideEncoding = myEncoding,
};
var doc = web.Load(myUrl);

关于c# - 解析html时被问号替换的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8006563/

相关文章:

c# - HTML敏捷包 : Replacing content in a "mixed-type" node

c# - 修改一个 LINQ `InRange` 扩展方法作为 `NotInRange`

c# - 如何获取所有用某些属性注释的属性?

php - XML 解析 - PHP 编码

ruby - 如何设置 Mechanize 页面编码?

c# - 使用 HTML Agility Pack 结束元素?

asp.net-mvc - 如何使用 .NET Core 中间件将 HTML 插入响应主体

c# - Unity c# 绕过监听器效果在 IOS 设备上不起作用

c# - Entity Framework 。 SQL 分组依据到 EF 分组依据

c# - 以渐进格式保存 JPEG