Кодирование в HTML с использованием HtmlAgilityPack - PullRequest
0 голосов
/ 18 марта 2011

У меня есть вопрос о китайской кодировке и сохранении обратно в файл.В настоящее время я использую HtmlAgilityPack для анализа HTML, выполнения некоторых операций с ним и сохранения его обратно в файл.У меня проблема с кодировкой, например китайской (GB2312 (упрощенная версия)).Когда я открываю файл, я читаю кодировку и сохраняю ее обратно, используя HtmlAgilityPack

doc.Save(this._filePath, reader.CurrentEncoding);

, но китайские буквы полностью изуродованы.Любые идеи о том, как я могу сохранить обратно в тот же файл и сохранить текущую кодировку?Я также попытался получить кодировку с помощью пакета HtmlAgilityPack следующим образом:

FileStream fs = new FileStream(this._filePath, FileMode.Open);

StreamReader reader = new StreamReader(fs);

HtmlDocument doc = new HtmlDocument();
doc.Load(reader);

Encoding enc = doc.DeclaredEncoding

fs.Close();

doc.Save(this._filePath, enc);

, но это тоже не сработало.Есть идеи?

1 Ответ

1 голос
/ 27 марта 2011

Итак, после некоторой работы мне удалось заставить его работать, прочитав объявленную кодировку из метатега.Я хоть и изначально плохо сформировался, но на самом деле это было правильно.Заявленное кодирование действительно прочитало кодировку из метатега.

Когда файл сохранен, он все еще сохраняется в формате ANSI, и я не могу изменить это.Тем не менее, кодировка мета-тега, похоже, контролировала файл при его рендеринге в браузере.Надеюсь, это кому-нибудь поможет.

...