C# 如何修复网页抓取时出现的奇怪符号
基本上,我是从一个网站上获取信息,特别是一个页面上到处都是希伯来语的网站。正确地使用希伯来语对程序来说非常重要,但是我没有使用希伯来语字符,而是使用了带有奇怪口音的英语字符 我尝试过编码。转换,但它没有工作,我尝试过改变编码,但这是刚刚给我????符号。我试着将它写入一个txt文件,看看是否是cmd无法显示它;我仍然有相同的符号C# 如何修复网页抓取时出现的奇怪符号,c#,encoding,C#,Encoding,基本上,我是从一个网站上获取信息,特别是一个页面上到处都是希伯来语的网站。正确地使用希伯来语对程序来说非常重要,但是我没有使用希伯来语字符,而是使用了带有奇怪口音的英语字符 我尝试过编码。转换,但它没有工作,我尝试过改变编码,但这是刚刚给我????符号。我试着将它写入一个txt文件,看看是否是cmd无法显示它;我仍然有相同的符号 using (WebClient client = new WebClient()) { string htmlCode = client.Downloa
using (WebClient client = new WebClient())
{
string htmlCode = client.DownloadString("https://www.pealim.com/dict/");
Console.WriteLine(htmlCode);
}
我建议使用而不是WebClient。它是较新的,处理编码问题
但是,https://www.pealim.com/dict/
将页面返回为UTF-8,因此编码不是问题!我怀疑你的控制台显示的希伯来语不正确;看
验证是否接收到正确文本的一种方法是在控制台上设置断点。WriteLine
,然后在调试器中检查文本
如果您计划抓取页面,这是非常有用的。在这里使用注释/示例代码:您可以看到WebClient使用WebRequest编码,而不是WebResponse编码。因此,您可以使用HttpWebRequest执行通常可以执行的操作:从HttpWebResponse获取实际编码。然后可以使用实际编码对字符串进行解码。这不一定是UTF-8。许多https资源仍然使用本地/特定编码(见图)。顺便说一句,如果你有一个控制台应用程序,
Courier New
可以打印希伯来文符号。