Laden...

Ungültiges Zeichen wird auf einem anderen Rechner erzeugt.

Erstellt von digi333 vor 13 Jahren Letzter Beitrag vor 13 Jahren 1.110 Views
D
digi333 Themenstarter:in
290 Beiträge seit 2006
vor 13 Jahren
Ungültiges Zeichen wird auf einem anderen Rechner erzeugt.

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? 🤔

5.299 Beiträge seit 2008
vor 13 Jahren

ist beim lesen und schreiben des xml das encoding einheitlich festgelegt, etwa utf8?

Der frühe Apfel fängt den Wurm.

D
digi333 Themenstarter:in
290 Beiträge seit 2006
vor 13 Jahren

Wie kann ich den das Encoding einstellen?

S
178 Beiträge seit 2009
vor 13 Jahren

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

D
digi333 Themenstarter:in
290 Beiträge seit 2006
vor 13 Jahren

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

5.657 Beiträge seit 2006
vor 13 Jahren

Letztendlich mußt du wissen, in welchem Encoding dein russischer Kollege die Datei abgespeichert hat.

Weeks of programming can save you hours of planning