JSPX: Probleme mit Zeichenkodierung

Irgendwie schreibt meine Seite hier die Umlaute nicht richtig in die Datenbank. Ich erhalte stattdessen seltsame Zeichen (ä). Die werden dann halt auch wieder falsch ausgegeben (handelt sich um ne Art Newsscript).
Bin nicht wirklich sicher woran es liegen könnte. Datenbanksettings oder Probleme mit der JSPX. Wenn ich mit meinem SQL Client direkt in die Datenbank schreibe funktioniert alles ohne Probleme.

Die Kollation der Datenbank hab ich auch mal auf “utf8_general_ci” gestellt - ohne Erfolg.

Mein Header:

[XML]<?xml version="1.0" encoding="UTF-8" ?>

Testpage
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" type="text/css" href="style.css" />
[/XML]

Mein Formular hab ich auch um dieses accept-charset attribut ergänzt:

[XML][/XML]

alles ohne Erfolg. Jemand ne Idee?

Gruß

Edit: ach ja an meine connection url hab ich die Parameter “?useUnicode=true&characterEncoding=UTF-8” bereits drangehängt

Das Interessante ist, dass ich schon alleine beim request.getParameter() die falsche Codierung habe. Theoretisch also schon bevor ich in die Datenbank schreibe. Aber ich komm trotzdem nicht weiter

Edit: ok interessant ich arbeite mich vorran , wenn ich “ä” eingebe bekomme ich als ergebnis ein “ä”, aber ständig irgendwelche entitäten benutzen zu müssen is ja auch nicht tragbar

du muss glaube die Codierung deiner Seiten und Parameter einstellen.
Das muss im Empfangenden Servlet passieren und in der JSP die sendet.
du kansnt ja mal nachsehen ob du das findest, ich hab gerade den Quellcode nicht auf dem Rechner hier.

Ich hab gar kein Servlet. Ich arbeite im Moment nur mit JSPS. Trotzdem hab ich meiner index.jspx noch:

[XML]<jsp:directive.page contentType=“application/xhtml+xml; charset=utf-8” language=“java” />[/XML]

eingefügt. Hilft aber auch nicht weiter…

schreib mal lieber
[XML]

[/XML]

Funktioniert leider auch nicht.

Ich hab mal ne kleine Page gebastelt mit der man das Problem testen kann, vielleicht hilft das ja weiter:

[XML]<?xml version="1.0" encoding="UTF-8" ?>

Testpage
<form name="testForm" method="post" action="test.jspx" accept-charset="UTF-8">
	<input name="parameter" type="text" size="32" maxlength="128" value="ä - ö - ü" />
	<input type="submit" value="Submit" />
</form>

<p>
	Parameter: 
	<jsp:scriptlet>
		out.println("\'"+request.getParameter("parameter")+"\'");			
	</jsp:scriptlet>
</p>	
[/XML]

Falls Du aus einem Formular Deine Daten an die DB schickst musst Du gleich dem Browser mitteilen das er diese nur im utf-8 Format schicken soll.

[XML]

[/XML]

Genau so sollten die Daten auch im richtigen Charset in der DB landen.

Gut Schuß
VuuRWerK :wink:

edit: huch sry nicht gesehen das Du das schon so eingebaut hast.
Dann mal eine andere Frage: Hast Du in der DB auch alle Character Sets auf utf-8 gestellt? Das setzen von utf-unicode für jede character-spalte reicht meistens nicht aus, Du musst der ganzen Datenbank sagen das es sich hier nur um utf-8 handelt.
Weil ich es auch gerade sehe, Du schickst ja schon vordefinierte Werte im input an die DB, sind Deine *.jsp auch alle utf-8 encodiert gespeichert?

Alle jsps sind utf-8 kodiert gespeichert
In meiner Datenbank hab ich die Kodierungen überall (Datenbank, Tabellen, Tabellenspalten) auf utf-8 umgestellt ja. Aber daran liegt es ja nicht, denn das Beispiel hier benutzt ja erst gar keine Datenbank und es geht so schon nicht.

Ich hab jetzt nen Workaround gebastelt. Ich muss den Text den der Benutzer eingibt ja sowieso auf bb Codes prüfen und da mach ich dann halt gleich noch nen String.replace() und setze die Entitäten für die Umlaute ein.

Zufrieden bin ich damit aber nicht ganz. Es muss doch ne saubere Lösung für sowas geben. Also wenn jemand noch ne Idee hat…