Laden...

Frage Zeichensatz XML, DataSet, HTML

Erstellt von heinerle vor 18 Jahren Letzter Beitrag vor 18 Jahren 925 Views
H
heinerle Themenstarter:in
5 Beiträge seit 2005
vor 18 Jahren
Frage Zeichensatz XML, DataSet, HTML

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\">&nbsp;</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

P
939 Beiträge seit 2003
vor 18 Jahren

Umlaute sind in XML und HTML nicht erlaubt, die müssen durch Entities ersetzt werden. HTML definiert z.B. &auml; für ä oder &uuml; 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