Кодирование в HTML с использованием HtmlAgilityPack

encoding html-agility-pack

Вопрос

У меня вопрос о китайском кодировании и сохранении обратно в файл. В настоящее время я использую 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);

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

Принятый ответ

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

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



Related

Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow