verwendetes Datenbanksystem: XML
Ich habe ein Programm geschrieben das Informationen sammelt und in eine XML speichert. Dieses Programm nutzt jemand anders auf einen anderen Rechner (btw er ist Russe). Die erzeugte XML kann ich jedoch nicht laden, da es immer mal wieder ein ungültiges Zeichen gibt.
Meine XML:
<UserName>Ël ÇhåNgØ</UserName>
Seine XML:
<UserName>Ël ÇhåNgÿ</UserName>
Dieses ÿ verursacht, dass ich mit XMLDocument.Load() die ganze XML nicht laden kann. Wie kann ich den Fehler im nachhinein beheben? 🤔
ist beim lesen und schreiben des xml das encoding einheitlich festgelegt, etwa utf8?
Der frühe Apfel fängt den Wurm.
Ich habe hier einen Code Schnipsel gefunden der zeigt wie man das machen kann:
/// <summary>
/// Changes the XML encoding.
/// </summary>
/// <param name="xmlDoc">The XmlDocument.</param>
/// <param name="newEncoding">The new encoding.</param>
/// <returns></returns>
private XmlDocument ChangeXmlEncoding(XmlDocument xmlDoc, string newEncoding)
{
if (xmlDoc.FirstChild.NodeType == XmlNodeType.XmlDeclaration)
{
XmlDeclaration xmlDeclaration = (XmlDeclaration)xmlDoc.FirstChild;
xmlDeclaration.Encoding = newEncoding;
}
return xmlDoc;
}
NewEncoding solltest du dann z.B. auf utf-8 setzen
http://dotnet-snippets.de/dns/c-xml-encoding-eines-xmldocument-aendern-SID862.aspx
Den Codeschnipsel hab ich auch schon gesehen, aber der brachte keine Veränderung. Vielleicht stell ich mich aber auch zu doof an. Kannst du es mal testen, ob du die eine Zeile von oben mit XMLDocument.Load() öffnen kannst. Danke
Letztendlich mußt du wissen, in welchem Encoding dein russischer Kollege die Datei abgespeichert hat.
Weeks of programming can save you hours of planning