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