Hallo,
und nochmals danke für die lange Antwort....!!
also zunächst einmal zu htmlspecialchars. Ich habe dein Beispiel ausprobiert (Es gilt x<4 oder x>8) und dies ist kein Problem. Es wird korrekt dargestellt. Ich würde also weiterhin sagen, dass ich htmlspecialchars nicht brauche, sondern lediglich das mit den Zeilenumbrüchen hinbekommen muss.
zu Fall 1: Womit stellst du fest, was "wirklich" in der DB steht? - Das sieht nämlich sehr danach aus, dass du noch ein Problem mit der Zeichencodierung hast.
Ein kleines ü hat den Zeichencode U+00FC und wird in UTF-8 durch die zwei Bytes C3, BC dargestellt.
Dasselbe ü wird in einer ISO-8859-x-Codierung aber durch das einzelne Byte FC repräsentiert.
Genau dieser Bytewert FC entspricht aber in CP437 (das ist der "eingebaute" Zeichenvorrat von Grafikkarten) dem Symbol ³, das du erwähnst.
Offensichtlich werden deine Daten also in ISO-8859-x an die DB übergeben und eingetragen, ebenso in ISO-8859-x wieder ausgelesen und weiterverarbeitet. Das Tool, mit dem du nachschaust, was "wirklich" in der DB steht, scheint die Daten aber als CP437 (auch "OEM-Zeichensatz" genannt) zu interpretieren.
Ohje, ich hab nicht so viel Ahnung von Zeichencodes und Zeichensätzen. Ist es so schlimm, dass in der DB ³ steht, wenn doch im Javaprogramm das ³ als "ü" ausgegeben wird? Ich meine, hauptsache, ich habe das "ü" dann, wenn ich es brauche. Du sagtest doch selber, ich soll nicht konvertieren, bis ich es wirklich benötige. In dem Fall müsste ich ja gar nichts machen.
Oder habe ich jetzt irgendwas falsch verstanden?
Wo ist "kein Zeilenumbruch"? In der Anzeige im Browser?
Ja, im Broser, sorry. Im Quelltext ist er sichtbar, korrekt.
Nun kommt mein Problem. Ich kriege es einfach nicht hin, dass der Zeilenumbruch dargestellt wird. Das Problem ist, dass alle Methoden, die ich bisher gefunden habe (und alle Möglichkeiten), \t, \n oder anderes eben entsprechend ersetzen. Damit kann ich aber nichts anfangen, da diese ja dort gar nicht stehen.
Doch, natürlich. Du hast mindestens \n als Zeilenumbruch, möglicherweise sogar \r\n.
Ich habe zum Beispiel auch solche Methoden ausprobiert: http://www.rgagnon.com/javadetails/java-0306.html
Das zeite Beispiel in dem von dir verlinkten Artikel kümmert sich wenigstens auch um die Umwandlung von Zeilenumbrüchen.
So, also, ich habe das zweite Beispiel nun nochmal ausprobiert. Folgendes passiert:
Beispieltext:
"
Es gilt x<4 oder x>8
Zeilenumbrüche
"
Ausgabe im Browser:
aus
<c:out value="${model.about}"/>
wird
Es gilt x<4 oder x>8 <br/> <br/>Zeilenumbrüche
aus
<c:out value="${model.about}" escapeXml="false" />
wird
Es gilt x<4 oder x>8 <br/> <br/>Zeilenumbrüche
Hilfe....
das zweite sieht ja ganz gut aus, aber das hilft mir auch nichts, wenn <br/> <br/> im Browser dargestellt wird...
das ist irgendwie nicht ganz die richtige Lösung :-(
Danke für deine Hilfe!!!