如何为HtmlAgilityPack HtmlDocument设置编码

时间:2011-09-20 22:22:28

标签: html encoding load

继承我的代码:

HtmlWeb hw = new HtmlWeb();

HtmlAgilityPack.HtmlDocument htmlDoc = hw.Load(@"www.SomeForeignURL.com");

返回的HTML页面包含看起来很奇怪的字符,Id喜欢将返回文档的编码指定为UTF-8。我该如何解决这个问题?

(尝试像这样加载文档:htmlDoc.Load(“url”,Encoding.UTF8)但是它返回了一个错误,说明不支持URI或类似的东西。)

1 个答案:

答案 0 :(得分:0)

它可能没那么有用但我遇到了一个问题,其中Load()方法无声地失败,可能无法检测格式,并通过首先将文件加载到字符串来解决它(我使用另一个函数来下载文件)。然后我使用了LoadHTML()方法。我迟到了一年回答,而且我使用的是PowerShell而不是C#,但提示可能仍然适用。

查看倒数第二行:它只是将文件读入字符串并传递给LoadHTML()

#  http://www.leeholmes.com/blog/2010/03/05/html-agility-pack-rocks-your-screen-

scraping-world/
function DownloadFile {
Param([Parameter(mandatory=$true)]$source , 
    [Parameter(mandatory=$true)]$destination) 


    $wc = New-Object System.Net.WebClient
    $wc.DownloadFile($source, $destination)
}

$erroractionpreference = 'stop'
Set-Strictmode -version 2

DownloadFile  "http://someurl/index.php?action=searchplayer&server=0&player=%" "$pwd\all.php"

$types = add-type -Path .\agilitypack\HtmlAgilityPack.dll
$doc = New-Object HtmlAgilityPack.HtmlDocument 
$doc.LoadHtml([string](get-content .\all.html))
$doc