Hi,
URL-Parameter mit Umlaut werden von verschiedenen Browsern verschieden umgesetzt und gesendet.
normalerweise 1:1 so, wie sie im anfordernden Dokument stehen. In genau der Codierung.
Meine Seiten sind UTF-8 codiert.
Eingabe in der Adresszeile: "&suche=Südhessen"
Die Codierung deiner Seiten ist aber irrelevant, wenn du von Hand etwas direkt in die Adresszeile eingibst. Da fehlt jegliche Angabe der Codierung. Der Browser wird also das verwenden, was für ihn als Default eingestellt ist.
Opera macht davon "S%C3%BCdhessen"
Wenn UTF-8 als Default eingestellt ist.
Wenn du ISO-8859-1 als Defaultcodierung einstellst, sendet er das auch: S%FCdhessen
Die zusätzliche URL-Codierung (im Volksmund auch "percent encoding") muss natürlich sein.
Firefox belässt es bei "Südhessen" (nein, wandelt auch um, aber zeigt korrigiert an, man merkt es, wenn man die URL mit ctrl-C übernimmt)
Er verhält sich AFAIK genauso wie der Opera, nur dass er in der Adresszeile die URL-Codierung auflöst (im Hintergrund aber korrekt anwendet).
In PHP übernehme ich das mit
$suche = utf8_encode($_GET['suche']);
echo $suche;
Du betrachtest den String, den du bereits in UTF-8 bekommst, als ISO-Latin und codierst erneut nach UTF-8 um. Wozu? Die Verwendung von utf8\_encode ist, soweit ich erkennen kann, völlig unangebracht.
> echo-Anzeige: Südhessen
Das ist dann logisch.
> Da ich in der DB danach suche, gibt es kein Ergebnis. Was mache ich falsch?
Du rechnest Beträge in Dollar um, die schon in Dollar vorliegen. Sozusagen. ;-)
Ciao,
Martin
--
Um die Wahrheit zu erfahren, muss man den Menschen widersprechen.
(George Bernhard Shaw)
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(