我正在使用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”
如何解决引入新角色的问题?
答案 0 :(得分:1)
它很可能是文本编码(charset)问题。
StreamWriter
默认为UTF-8。 html文件很可能以Windows-1252编码。
您需要确定html文件的文本编码,然后在创建StreamWriter
时使用它。
DownloadString
也可能是一个问题(如果您使用的是WebClient)。尝试设置编码
var client = new WebClient { Encoding = System.Text.Encoding.UTF8 };
client.DownloadString(...)