Codificación en HTML usando HtmlAgilityPack

encoding html-agility-pack

Pregunta

Tengo una pregunta sobre la codificación china y el guardado en un archivo. Actualmente estoy usando el HtmlAgilityPack para analizar HTML, hacer algunas cosas con él y guardarlo de nuevo en el archivo. Tengo un problema con la codificación, como el chino (GB2312 (simplificado)). Cuando abro el archivo, leo la codificación y la guardo de nuevo, usando el HtmlAgilityPack

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

Pero las letras chinas se mutilan completamente. ¿Alguna idea sobre cómo puedo guardar de nuevo en el mismo archivo y mantener la codificación actual? También intenté obtener la codificación con el HtmlAgilityPack como:

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);

pero eso tampoco funcionó. ¿Algunas ideas?

Respuesta aceptada

Entonces, después de algunos trabajos, logré que funcionara leyendo la codificación declarada de la etiqueta Meta. Pensé que estaba mal formado inicialmente, pero en realidad era correcto. DeclaredEncoding leyó la codificación de la metaetiqueta.

Cuando se guardó el archivo, aún se guardaba en formato ANSI y parecía que no podía cambiarlo. Sin embargo, la codificación de la metaetiqueta parecía mantener el archivo bajo control cuando se procesaba en el navegador. Espero que ayude a alguien.



Related

Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow