C# 如何修复网页抓取时出现的奇怪符号

C# 如何修复网页抓取时出现的奇怪符号,c#,encoding,C#,Encoding,基本上,我是从一个网站上获取信息,特别是一个页面上到处都是希伯来语的网站。正确地使用希伯来语对程序来说非常重要,但是我没有使用希伯来语字符,而是使用了带有奇怪口音的英语字符 我尝试过编码。转换,但它没有工作,我尝试过改变编码,但这是刚刚给我????符号。我试着将它写入一个txt文件,看看是否是cmd无法显示它;我仍然有相同的符号 using (WebClient client = new WebClient()) { string htmlCode = client.Downloa

基本上,我是从一个网站上获取信息,特别是一个页面上到处都是希伯来语的网站。正确地使用希伯来语对程序来说非常重要,但是我没有使用希伯来语字符,而是使用了带有奇怪口音的英语字符

我尝试过编码。转换,但它没有工作,我尝试过改变编码,但这是刚刚给我????符号。我试着将它写入一个txt文件,看看是否是cmd无法显示它;我仍然有相同的符号

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
可以打印希伯来文符号。