Ich habe ein Problem und kann mir nicht erlären, wie es dazu kommt.
Folgendes:
ich habe eine XML-Datei
<?xml version="1.0" standalone="yes"?>
<Spielerliste>
<Spieler>
<Ausweis>2001950</Ausweis>
<Name>Löhnert</Name>
<Vorname>Klaus</Vorname>
<Strasse>Musterweg</Strasse>
<PLz>01234</PLz>
<Ort>Berlin</Ort>
<Spielort>Cats</Spielort>
</Spieler>
<Spieler>
.......
darin ist der Name Löhnert zu sehen, geschrieben mit "ö".
Diese Datei lese ich aus in ein DataSet und dieses lasse ich in einem Grid darstellen.
Die Darstellung ist korrekt, der angezeigte Name ist "Löhnert".
Anschliessend speichere ich den Inhalt des DataSet in einer HTML-Datei, indem ich das DataSet in einen String auslese:
htmlCode += "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">";
htmlCode += "<html><head><title>Mitgliedsausweis</title>";
htmlCode += "<meta http-equiv=\"content-type\" content=\"text/html; charset=iso-8859-1\">";
htmlCode += "<link rel=\"stylesheet\" type=\"text/css\" href=\"./style.css\">";
htmlCode += "</head><body>";
htmlCode += "<form action=\"\" method=\"get\" target=\"Daten\">";
htmlCode += "<table cellspacing=\"10\"><tr>";
// Beginn des Auslesens
int helpCount = 1;
foreach(DataRow playerRow in xml.Tables["Spieler"].Rows)
{
if (helpCount%2!=0)
{
htmlCode += "</tr><tr>";
}
htmlCode += "<td width=\"300\" height=\"150\"><p class=\"klein\"> </p><p class=\"members\">";
// Name
htmlCode += playerRow["name"];
htmlCode +="</p>";
htmlCode += "<p class=\"members\">";
// Vorname
htmlCode += playerRow["vorname"];
htmlCode += "</p>";
htmlCode += "<p class=\"members\">";
// Team
htmlCode += playerRow["Spielort"];
htmlCode += "</p>";
htmlCode += "<p class=\"members\">";
// Nummer
htmlCode += playerRow["ausweis"];
htmlCode += "</p></td>";
helpCount++;
}
// Ende des Auslesens in ein Zeile
htmlCode += "</tr></table></form></body></html>";
Bitte keine Kommentare zu den einzelnen Tag, das hängt damit zusammen, dass ich in jeder Zelle ein Hintergrundbild habe, was ich nicht verändern darf 🙂
Der erzeugt String wird anschliessend als HTML-Datei gespeichert.
Und nun das eigentliche Problem:
wenn ich diese HTML-Datei öffne, ist die Anzeige soweit OK, aber aus dem Namen "Löhnert" ist ein
Löhnert
geworden. Ich versteh nicht, wo mein Fehler liegt 🙁
Es ist doch das richtig "charset" angegeben, warum wird der Name geändert, obwohl er sowohl in der XML als auch im DataSet korrekt ist?
Bitte helft mir, es ist echt dringend
bei beichen
heinerle
Umlaute sind in XML und HTML nicht erlaubt, die müssen durch Entities ersetzt werden. HTML definiert z.B. ä für ä oder ü für ü usw. In XML verwendet man Unicode-Entities, z.B. & #228; für ä.
http://www.w3schools.com/tags/ref_entities.asp
"Löhnert" sieht mir nach UTF8 aus. Dass du in der Html-Datei charset=iso-8859-1 angibst, bedeutet ja nicht zwangsläufig, dass sie auch so kodiert ist. Vielleicht bringt es was stattdessen da UTF-8 einzutragen, weiss ich aber nicht.
Gruss
Pulpapex