Umlaute von Formular mit request holen

Status
Nicht offen für weitere Antworten.

limes

Mitglied
Hi,

In einer JSP Datei habe ich ein Formular, wo man das Datum eingeben kann.
Bei Monat habe ich da z.B. den value Jänner für Jänner. Dieses ä brauche ich für eine Formularüberprüfung.

Wenn ich mir jetzt jedoch in der Java Datei diesen Wert holen will, kommt folgendes raus: Jänner

Kann ich in der Java Datei dieses Jänner in Jänner umwandeln?

Bitte um Hilfe
 
Hier der Ausschnitt vom Monat aus der JSP Datei:

HTML:
<select name="posts" id="id">  
<option value="<%=posts[3] %>" selected="selected"><%=posts[3] %></option>
<option value="J&auml;nner">J&auml;nner</option>
<option value="Februar">Februar</option>
<option value="M&auml;rz">M&auml;rz</option>
<option value="April">April</option>
...
</select>

Wenn man auf absenden klickt, kommt man auf eine Java Datei:

Java:
		String []posts = request.getParameterValues("posts");

posts beinhaltet mehrere Felder des Formulares u.a eben auch den Monat
Wenn ich jetzt mir den Monat ausgeben lasse, steht eben "Jänner" drin.
 
Mit Sicherheit könnte ich das sagen, wenn ich mich nicht im Anfängerforum rumtreiben würde. Ich glaube UTF-8
 
Zeig mal den gesamten Quelltext der JSP, oder nur den Anfang, da sollte das drinnstehen.

Anfängerforum ist für dieses Thema auch das falsche.
*verschoben*
 
HTML:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c-rt" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">


   
<html xmlns="http://www.w3.org/1999/xhtml" lang="de" xml:lang="de">
	
	<head>

		<meta http-equiv="content-type" content="text/html; charset=utf-8" />
		<meta http-equiv="language" content="de" />
		<meta http-equiv="content-language" content="de" />
		<meta name="language" content="deutsch, de" />
		
		
		<link rel="stylesheet" type="text/css" href="css/style.css" media="screen"/>
		
		<!--[if lte IE 6]>
 
			<link rel="stylesheet" href="css/iefix.css" type="text/css" />
 
		<![endif]-->
	
	</head>

OK, jetzt sehe ich es auch stehen
 
Zuletzt bearbeitet:
Jetzt habe ich doch noch kurz eine Frage:

In der Datenbank werden die Umlaute und das ß jetzt richtig gespeichert, doch wenn ich die Werte jetzt auslesen will, zeigt es mir wieder etwas falsches an. Muss ich da auch nochmal so eine "UTF-Codierung" machen?
 
Also ich habe so eine MySql Datenbank, und da habe ich bei Collation bei allen Strings utf8_unicode_ci eingestellt. In der Datenbank steht alles richtig drin, nur wenn ich das dann auf einer JSP-Seite ausgeben will, ist es wieder falsch.
 
Wie sieht denn deine Connection Url aus?
Code:
jdbc:mysql://<server>/<db>?useUnicode=yes&characterEncoding=UTF-8
 
Java:
jdbc:mysql://<server>/<db>

So sieht es aus.

Muss wohl dieses useUnicode noch am Ende dran?
 
Denke dass das characterEncoding reichen sollte, zur Not beides nehmen.

Als nächstes solltest du deinen Quellcode auf UTF-8 stellen 😉
 
Hmm, funktioniert irgendwie immer noch nicht. Die Datenbank ist utf8 Format und die JSP-Datei auch. Kann das daran liegen, dass ich das ganze Zeug in der JSP mit JSTL ausgebe?
 
Kann ich in der Java Datei dieses J&auml;nner in Jänner umwandeln?

Schau Dir mal die StringEscapeUtils aus der Library Apache Commons - Lang an. Die funktioniert in etwa so:

Java:
string = StringEscapeUtils.unescapeHtml(string);

Damit machst Du aus dem HTML wieder UTF-8. Ist sehr bequem.
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben