I have a really bad problem. I have a lot of records in database which are in Persian language. For some reasons, I load them, make some changes to them (by HtmlAgilityPack), and then save them back to db. But all strings gone to ?????????????
symbols. Is there any way to getting them back? Here is my code snippet:
private void SomeStartMethod(){
var str = ReadFromDb();
str = MakeChanges(str);
SaveToDbAgain(str);
}
private string MakeChanges(string contentHtml) {
var reader = new StringReader(contentHtml);
var doc = new HtmlDocument();
doc.Load(reader);
var nodes = doc.DocumentNode.SelectNodes("//a[@href]");
if (nodes == null || !nodes.Any())
return contentHtml;
foreach (var link in nodes) {
// do some stuffs here...
}
using (var memoryStream = new MemoryStream()) {
doc.Save(memoryStream);
memoryStream.Seek(0, SeekOrigin.Begin);
var streamReader = new StreamReader(memoryStream /* here was my mistake, I forgot to put , Encoding.UTF8 here */);
var result = streamReader.ReadToEnd();
return result;
}
}