Ich habe eine Frage zum chinesischen Kodieren und Speichern in einer Datei. Ich verwende derzeit das HtmlAgilityPack, um HTML zu analysieren, einige Dinge damit zu tun und es wieder in die Datei zu speichern. Ich habe ein Problem mit der Codierung, z. B. Chinesisch (GB2312 (vereinfacht)). Wenn ich die Datei öffne, lese ich die Kodierung und speichere sie mit dem HtmlAgilityPack zurück
doc.Save(this._filePath, reader.CurrentEncoding);
aber die chinesischen Buchstaben werden vollständig verstümmelt. Irgendwelche Ideen, wie ich in derselben Datei speichern und die aktuelle Kodierung beibehalten kann? Ich habe auch versucht, die Codierung mit dem HtmlAgilityPack wie folgt zu bekommen:
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);
aber das hat auch nicht funktioniert. Irgendwelche Ideen?
Nach einiger Arbeit habe ich es geschafft, es zu funktionieren, indem ich die deklarierte Codierung aus dem Meta-Tag gelesen habe. Ich habe zwar anfangs schlecht gebildet, aber eigentlich war es richtig. Das DeklarierteEncoding hat die Codierung aus dem Meta-Tag gelesen.
Wenn die Datei gespeichert wurde, wird sie immer noch im ANSI-Format gespeichert, und das konnte ich anscheinend nicht ändern. Allerdings scheint die Meta-Tag-Codierung die Datei in Schach zu halten, wenn sie im Browser gerendert wurde. Hoffe das hilft jemandem.