C#读取HTML文件会在空格中生成随机字符

时间:2017-01-06 00:36:34

标签: c# html

我正在使用WebBrowser控件来查看我拥有的网页。网页由PDF和office文件创建。我首先打开每个办公室或PDF文件并将其保存为HTML页面。然后我将我的控件导航到我的文件系统上的HTML页面。

我想允许用户选择文本或图形或整个表格并突出显示它们。到目前为止,我可以将文本突出显示 BUT 它并不总是第一次工作。

我采用他们突出显示的字符串值并执行此操作

String substitution = "<span style='background-color: rgb(255, 255, 0);'>" + SelectedText + "</span>";

其中 SelectedText 是他们在控件中选择的内容。

然后,我这样做。

string htmlText = client.DownloadString(tempFileName);
htmlText = htmlText.Replace(SelectedText, substitution);

StreamWriter sw = new StreamWriter(tempFileName, false);
sw.Write(htmlText);
sw.Close();

问题是,当我使用 StreamWriter 重新保存文件时 - 它会添加特殊字符 - 在这种情况下看起来很奇怪“A”

如何解决引入新角色的问题?

enter image description here

1 个答案:

答案 0 :(得分:1)

它很可能是文本编码(charset)问题。

解决方案1 ​​

StreamWriter默认为UTF-8。 html文件很可能以Windows-1252编码。

您需要确定html文件的文本编码,然后在创建StreamWriter时使用它。

解决方案2

DownloadString也可能是一个问题(如果您使用的是WebClient)。尝试设置编码

var client = new WebClient { Encoding = System.Text.Encoding.UTF8 };
client.DownloadString(...)
相关问题