# Umlaute ä,ö,ü in der Adresszeile



## Schumiel (4. November 2009)

Hallo,

und zwar ist meine Webseite auf "iso-8859-1" codiert und durch einen POST werden die Werte dann auf "utf-8" verarbeitet und danach wieder an mich (mit iso-8859-1) zurück gesendet. (wieso das so ist, fragt bitte nicht ). Aufjedenfall werden die Umlaute dann nicht so dargestellt, wie gewünscht.

Was hilft dagegen?


----------



## gordonk (4. November 2009)

htmlspecialchars(), html_entity_decode() oder htmlentities() schon probiert?


----------



## Gumbo (4. November 2009)

Heutige Browser setzen bei der URL UTF-8 voraus, damit diese dortige kodierte Nicht-ASCII-Zeichen darstellen. Du müsstest also für deine URLs UTF-8 als Zeichenkodierung verwenden.


----------



## Schumiel (4. November 2009)

@gordonk:
Half leider nicht. Ich habe die ankommende GET-Variable damit bestückt.

@Gumbo:
Ok, und wie mache ich das, dass NUR die URLs diese Kodierung bekommen? Weil wenn ich Standard UTF-8 nehme, dann wird im Normalen Text aus einem ö usw. ein schwarzes Viereck.


----------



## Gumbo (4. November 2009)

Du musst die URLs in deinen Links richtig kodieren. Statt etwa 
	
	
	



```
<a href="/Hundehütte">
<a href="/Hundeh%FC">
```
 müsstest du bereits die UTF-8-kodierte Variante 
	
	
	



```
<a href="/Hundeh%C3%BC">
```
 angeben.


----------



## Schumiel (4. November 2009)

Da dies ein Formular ist und somit andere User auch mal ein ö usw. eingeben können, was dann?
Die Links müssten glaube da richtig kodiert werden, wenn die GET-Variablen zu mir zurück kommen.


----------



## Gumbo (4. November 2009)

Bei Formularen kannst du die zu verwendende Kodierung im accept-charset-Attribut angeben. Anderenfalls wird dieselbe Kodierung wie die des HTML-Dokuments genommen.


----------



## gordonk (5. November 2009)

Poste doch mal was daraus kommt wenn du sagen wir "äöü" übers Formular abschickst.

edit: Also wenn mich nicht alles täuscht müsste bei "äöü" "?gettest=%E4%F6%FC" herauskommen.
        Und so hast das schon getestet oder ?

```
htmlentities($_GET['gettest'], ENT_NOQUOTES, 'ISO8859-1');
```

oder hab ich jetzt etwas falsch verstanden und bei dir in der Adresszeile steht tatsächlich  "?gettest=äöü"  ?

Dann hat Gumbo nämlich recht.

```
<form action="" method="get" accept-charset="ISO-8859-1">
```


----------



## Schumiel (5. November 2009)

accept-charset="ISO-8859-1"

... funktioniert leider nicht. Ich übergebe die Daten auch per POST und nicht GET.

Edit:
WÃ¶rke sollte Wörke heißen.


----------



## gordonk (5. November 2009)

Schumiel hat gesagt.:


> Da dies ein Formular ist und somit andere User auch mal ein ö usw. eingeben können, was dann?
> Die Links müssten glaube da richtig kodiert werden, wenn die GET-Variablen zu mir zurück kommen.





Schumiel hat gesagt.:


> @gordonk:
> Half leider nicht. Ich habe die ankommende GET-Variable damit bestückt.



Ó.ò

musst du uns so durcheinander bringen ?^^
Was kommt bei dem ganzen denn nun raus ? Komische Symbole nehm ich an.
Post doch mal relevanten Code und Ausgabe vom Browser, bitte.


----------



## Schumiel (5. November 2009)

@gordonk:


Schumiel hat gesagt.:


> Edit:
> WÃ¶rke sollte Wörke heißen.


Das kommt raus, wenn ich die GET-Variable, mit der ich selbst weiter arbeite, herausbekomme.


----------



## gordonk (5. November 2009)

```
utf8_decode('WÃ¶rke');
```
Ergebnis : Wörke


----------



## Schumiel (5. November 2009)

Der Fehler war hier:

 accept-charset="ISO-8859-1"

muss zu

 accept-charset="utf8"

gemacht werden und es geht.

Ich danke euch, für eure Hilfe.


----------



## Schumiel (5. November 2009)

Leider gibt es noch ein kleines Problem.

Der IE8 spielt da nicht mit, sonst funktioniert es bei jedem anderen Browser.
Ist euch da was bekannt?

Edit:
Die GET-Variable ist nicht gesetzt.


----------

