使用C#读取HTML正文时的垃圾值

本文关键字:正文 读取 HTML 使用 | 更新日期: 2023-09-27 18:28:17

我有下面的HTML文件,其中包含以下内容:

<HTML>
<BODY>
...
........ company's Chief Financial Officer.   Now the.......
...
</BODY>
</HTML>

我正在阅读这个文件的内容使用:

StringBuilder stringBuilder = new StringBuilder();
using (StreamReader sr = new StreamReader(filePath))
{
   String line = sr.ReadToEnd();
   stringBuilder.Append(line);
}
strFileContent = stringBuilder.ToString();

然而,它返回的字符串为:

。。。。。。。。公司�的首席财务官。���现在。。

HTML文件在我的本地系统中。

使用C#读取HTML正文时的垃圾值

您需要使用与创建文件相同的编码。默认情况下,StreamReader假设您的编码为UTF8,并尝试使用该编码对文件进行解码,但您的原始编码是windows-1252(正如您在评论中所说)。由于显而易见的原因,试图用错误的编码读取会产生垃圾数据。

你应该明确说明文件的编码方式

var encoding = Encoding.GetEncoding(1252);//windows-1252
using (StreamReader sr = new StreamReader(filePath, encoding))
...

奖金阅读

您必须在StreamReader中设置编码,如下所示:

using (StreamReader sr = new StreamReader(filePath, Encoding.UTF8))