Problem bei Arrayabfrage mit Umlaut

guenter024

Erfahrenes Mitglied
Hallo PHP-Freunde,
zu Umlauten gibt es zwar schon viele Themen, ich konnte leider aber für meinen Fall noch keine Lösung finden.

Beispiel Codeausschnitt aus dem Formular:

PHP:
echo "<select name=\"Land\">\n";
$europa = array (' ... ', 'Deutschland', 'Dänemark','...');
foreach ($europa as $laender)  {
    echo "\n<option"; 
    if ($Land == $laender)  { 
        echo " selected=\"selected\""; 
    }
    echo ">".$laender."</option>";
echo "</select>\n";

Nun das Problem: Wenn der Nutzer auf Grund einer fehlenden oder falschen Eingabe wieder das Formular angezeigt bekommt solle das gewählte Land durch die Vorselektierung im Feld "Land" wieder angezeigt werden.
Das klappt soweit auch prima - eben bis auf die Länder mit Umlauten.

Die Formulardaten werden mit get_magic_quotes_gpc() und stripslashes($key[value]) eingelesen.
Normalerweise lasse ich dann die Eingaben mit bspw.
htmlspecialchars($Land) wieder ausgeben.

Ich komme jetzt nicht drauf wie ich die Abfrage so hinbiegen kann.
Weis jemand Rat?

Danke im Voraus für die Hilfe.
LG Günter


EDIT: Sorry, im Array steht natürlich ...','D&auml;nemark','...
 
Zuletzt bearbeitet:
Dann zeigt mit der Browser D?nemark an.
Hilft also nicht weiter.

Weis jemand noch eine andere Möglichkeit?


EDIT: die Alternative mit Daenemark wäre natürlich auch noch eine Möglichkeit
aber anders wärs schöner.
 
Mit
PHP:
<?php
    header ("Content-Type: text/html; charset=utf-8");

    #weiterer phpcode
teile ich dem Browser mit dass er utf-8 als Zeichensatz verwenden soll.
Der Editor ist ebenfalls auf utf-8 eingestellt.
Ist da dran etwas falsch?


Edit:
oder soll ich mal
PHP:
<?php
    header ("Content-Type: text/xhtml; charset=utf-8");

    #weiterer phpcode
versuchen?

Nochmal EDIT: Der Browser zeigt in der Seiteninfo auch an, dass die Seite mit UTF-8 kodiert ist.

ich hab jetzt Feierabend. Wenn du oder wer anders noch ne Möglichkeit sieht würd ich mich super freuen.
Danke jedenfalls schon mal für deine Hilfe.
Ich schaue heut abend zu Hause noch mal ins Forum.

ciao
Günter
 
Zuletzt bearbeitet:
Hi,

Mit
PHP:
<?php
    header ("Content-Type: text/html; charset=utf-8");

    #weiterer phpcode
teile ich dem Browser mit dass er utf-8 als Zeichensatz verwenden soll.
Der Editor ist ebenfalls auf utf-8 eingestellt.
Ist da dran etwas falsch?

nein, genauso war das gemeint und Dein Beispiel funktioniert bei mir tadellos. Hast Du dieses Länder-Array wirklich so in Deinem Script stehen oder kommt das vielleicht aus einer Datenbank?

Edit:
oder soll ich mal
PHP:
<?php
    header ("Content-Type: text/xhtml; charset=utf-8");

    #weiterer phpcode
versuchen?

Nein, das spielt für die Kodierung keine Rolle.

LG
 
Hallo nochmal,

Habe die Datei mal gelöscht und neu gespeichert und siehe da:
wenn ich, wie du gleich zu Anfang auch schon geraten hast mit ä schreibe, dann klappt es wunderbar.

Bin jetzt zwar ein bischen verwirrt woran es wohl lag, aber was solls.

Ich könnte mir aber vorstellen, das es an meinem vorherigen Editor lag, weil ich die Datei anfangs nur geändert habe. Was meinst du?

Ciao
 
Im Nachhinein schwer zu sagen. Vielleicht lag die Datei anfangs in ISO-Latin vor und Dein Editor hat sie deshalb auch so geöffnet und wieder gespeichert?

LG
 

Neue Beiträge

Zurück