Я пытаюсь опубликовать статьи, написанные в Word, на веб-сайте в формате html, у меня есть Windows-клиент, который преобразует статью в html и отправляет html в папку на веб-сайте, затем я показываю статью в IFrame. Однако в IE9 изображения не будут отображаться, потому что IE9 пытается преобразовать их в векторную графику. Я решил удалить код из HTML, который отвечает за это, и здесь начинается моя проблема. После того, как я изменяю и сохраняю файл, я получаю символы мусора, которые также отображаются на веб-странице. Однако если я вручную отредактирую файл в notepad ++, у меня не возникнут те же проблемы. Как я могу прочитать файл, сохраненный в формате Word, как HTML, используя C #, и не получить эти символы мусора ?? вот мой код
private bool AdjustHtmlPageForIE9Images(FileInfo file)
{
bool success = true;
try
{
string content = File.ReadAllText(file.FullName);
//replace [if gte vml 1] with [if gte iesucksopd 1]
content = content.Replace("[if gte vml 1]", "[if gte iesucksopd 1]");
//replace [if !vml] with [if !iesucksopd]
content = content.Replace("[if !vml]", "[if !iesucksopd]");
//now write the file over
File.WriteAllText(file.FullName, content);
}
catch (Exception ex)
{
throw ex;
}
return success;
}
и это приводит к отображению некоторых символов мусора.
Привет, ребята, спасибо за все ответы, вот что я сделал, чтобы исправить это
Привет, ребята, спасибо за ответы, наконец, все получилось, мне пришлось открыть в FF и проверить кодировку, и это была Западная Windows-1252, затем, когда SLaks sed передал GetEncoding (1252) в операциях чтения и записи, вот пересмотренный вариант код.
private bool AdjustHtmlPageForIE9Images(FileInfo file)
{
bool success = true;
try
{
Encoding encoding = Encoding.GetEncoding(1252);
string content = File.ReadAllText(file.FullName,encoding);
//replace [if gte vml 1] with [if gte iesucksopd 1]
content = content.Replace("[if gte vml 1]", "[if gte iesucksopd 1]");
//replace [if !vml] with [if !iesucksopd]
content = content.Replace("[if !vml]", "[if !iesucksopd]");
//now write the file over
File.WriteAllText(file.FullName, content, encoding);
}
catch (Exception ex)
{
throw ex;
}
return success;
}
Разве не смешно, что IE9 не может сделать такую простую вещь, как отображение html из слова в IFrame, не удивительно, что его популярность продолжает падать.