# Umlaute gehen bei URL Connection verloren



## MPW (19. Sep 2005)

Hallo,

ich progge gerade einen kleinen NewsServer, der auf Anfrage, eine oder mehrere Nachrichten zurückgibt.

Das ganze läuft, wie gesagt, über ein URL-Connection.
Klappt auch alles wunderbar, nur gehen mir die Umlaute verloren.

Also, hab' ich mir gedacht, ersetzen wir sie halt durch, z.B. & = ä,

klappte nicht, erst dachte ich, die methode dafür würde vielleicht nicht aufgerufen, dem war aber nicht so:

Ich baute eine Kontrollzeile ein, in der dann immer Stand welcher Buchstabe gerade ersetzt wurde, und siehe da, das ä war einwandfrei zu lesen!

Da ich aus Sicherheitsgründen hier keinen ganzen Code posten kann....mal nur Ausschnitte:


```
File zurückgeben[] = parsen(typ[1]);
				String raus = "";
				for (int q = zurückgeben.length-1; q > -1; q--) {
					File f = zurückgeben[q];
					try {
						BufferedReader in = new BufferedReader(new FileReader(f));
						String l = "";
						while ((l = in.readLine()) != null) {
							raus = raus + l + "°";
						}
						raus = raus + "°°";
					} catch (FileNotFoundException e) {
						raus = raus + "Problem with file " + f.getName() + ";";
						raus = raus + "°°";
					} catch (IOException e) {
						raus = raus + "Problem with file " + f.getName() + ";";
						raus = raus + "°°";
					} catch (NullPointerException e) {
					}

				} 
				/*if (repl) {
					raus = reppeln(raus);
				}*/
				out.println(raus);
```

der auskommentierte Methodenaufruf ist die Ersatzmethode für ä etc., wird aber nicht gebraucht.

Was ich nicht kapier, warum gehen die ä und so verlorgen, obwohl, wenn man einfach out.println("ä") es macht klappt!

Ach ja, aufrufen tut man das Ganze einfach durch den Link auf das Servlet...hier nciht wichtig, da es daran ja nicht liegt, könnte das ganze etwas mit dieser Zeile zu tun haben, aber ich denke nicht:


```
public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
		String param = req.getParameter("param");
		out = res.getWriter();
		//res.setContentType("text/html");
```

die^^ auskommentierte, aber hab' sie jetzt mal rausgenommen, mach keinen Unterschied.

Ich kapier's nicht, es kann doch wohl nicht am Laden von der Platte ligen, oder? Ich hab' mal mir die Dateien angesehen, da sind die äs und so einwandfrei, ich kapierÄs nicht...


----------



## MPW (19. Sep 2005)

Geschafft.

Ist zwar nicht das was ich mir so vorstelle, aber ich hab' jetzt einfach schon auf der Platte die umlaute ersetzt und fertig


----------



## MPW (19. Sep 2005)

auch, wenn ich es nach wie vor merkwüdig find^^


----------



## Gast (19. Sep 2005)

Was meinst du mit 'die Umlaute gehen verloren'. Kommen sie wirklich nicht beim Client an? Oder werden sie vielleicht nur nicht angezeigt, weil das encoding nicht passt?


----------



## MPW (20. Sep 2005)

Nun ja, sie werden - egal welche - durch ? ersetzt.

Bzw, wenn ich manuell welche Ausgebe werden sie ja richtig angezeigt, naja ich hab' jetzt alles in der Form & gemacht, das passt jetzt!


----------



## Gast (20. Sep 2005)

> Nun ja, sie werden - egal welche - durch ? ersetzt.

Das meinte ich. Das ist nicht das dreiste Java, welches einfach deine Umlaute durch ein ? ersetzt, sondern es ist dein Client, der versucht die Zeichen in einer anderen Codierung zu interpretieren.

Wenn du sie nun durch die aequivalente & Schreibweise ersetzt hast ist das aber ja egal.


----------



## MPW (20. Sep 2005)

Könnte mir aber nicht vorstellen, das Linux - der Server, auf dem das Servlet läuft - so intollerant ist, Linux kann soetwas eigentlich ganz gut, naja vielleicht ist da auch bloß was falsch eingestellt...


----------

