# Umlaute von Formular mit request holen



## limes (17. Sep 2009)

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&auml;nner für Jänner. Dieses &auml; 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&auml;nner in Jänner umwandeln?

Bitte um Hilfe


----------



## Atze (17. Sep 2009)

in der javadatei diesen wert holen?

kannst du mal n codebeispiel zeigen?


----------



## limes (17. Sep 2009)

Hier der Ausschnitt vom Monat aus der JSP Datei:


```
<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:


```
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.


----------



## maki (17. Sep 2009)

Welches Encoding verwendet die JSP?


----------



## limes (17. Sep 2009)

Mit Sicherheit könnte ich das sagen, wenn ich mich nicht im Anfängerforum rumtreiben würde. Ich glaube UTF-8


----------



## maki (17. Sep 2009)

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*


----------



## limes (17. Sep 2009)

```
<%@ 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


----------



## Atze (17. Sep 2009)

vielleicht hilft dir das

Tomcat/UTF-8 - Tomcat Wiki


----------



## limes (18. Sep 2009)

Funktioniert, vielen Dank!!!


----------



## limes (20. Sep 2009)

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?


----------



## maki (20. Sep 2009)

Ja, die DB muss auch mit UTF-8 arbeiten.

Welche Db verwendest du denn?


----------



## limes (20. Sep 2009)

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.


----------



## maki (20. Sep 2009)

Wie sieht denn deine Connection Url aus?

```
jdbc:mysql://<server>/<db>?useUnicode=yes&characterEncoding=UTF-8
```


----------



## limes (20. Sep 2009)

```
jdbc:mysql://<server>/<db>
```

So sieht es aus.

Muss wohl dieses useUnicode noch am Ende dran?


----------



## maki (20. Sep 2009)

Denke dass das characterEncoding reichen sollte, zur Not beides nehmen.

Als nächstes solltest du deinen Quellcode auf UTF-8 stellen


----------



## limes (20. Sep 2009)

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?


----------



## neurox (20. Sep 2009)

limes hat gesagt.:


> 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:


```
string = StringEscapeUtils.unescapeHtml(string);
```

Damit machst Du aus dem HTML wieder UTF-8. Ist sehr bequem.


----------

