Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Ungültiges Zeichen wird auf einem anderen Rechner erzeugt.
digi333
myCSharp.de - Member



Dabei seit:
Beiträge: 302

Themenstarter:

Ungültiges Zeichen wird auf einem anderen Rechner erzeugt.

beantworten | zitieren | melden

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?
private Nachricht | Beiträge des Benutzers
ErfinderDesRades
myCSharp.de - Experte

Avatar #avatar-3151.jpg


Dabei seit:
Beiträge: 5409

beantworten | zitieren | melden

ist beim lesen und schreiben des xml das encoding einheitlich festgelegt, etwa utf8?
Der frühe Apfel fängt den Wurm.
private Nachricht | Beiträge des Benutzers
digi333
myCSharp.de - Member



Dabei seit:
Beiträge: 302

Themenstarter:

beantworten | zitieren | melden

Wie kann ich den das Encoding einstellen?
private Nachricht | Beiträge des Benutzers
Siedlerchr
myCSharp.de - Member



Dabei seit:
Beiträge: 180
Herkunft: NRW

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
digi333
myCSharp.de - Member



Dabei seit:
Beiträge: 302

Themenstarter:

beantworten | zitieren | melden

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
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von digi333 am .
private Nachricht | Beiträge des Benutzers
MrSparkle
myCSharp.de - Team

Avatar #avatar-2159.gif


Dabei seit:
Beiträge: 5967
Herkunft: Leipzig

beantworten | zitieren | melden

Letztendlich mußt du wissen, in welchem Encoding dein russischer Kollege die Datei abgespeichert hat.
Weeks of programming can save you hours of planning
private Nachricht | Beiträge des Benutzers