url-codieren, anders zu Verhalten in Firefox und Internet Explorer

Ich möchte zum senden einer Benutzer-Eintrag, um die google geocode API. Dabei habe ich ein problem erkannt.
Wenn ich senden Sie die Benutzer-Eingabe (z.B. "köln+Deutschland") durch mein script an die api in Firefox funktioniert es Super. Im Internet Explorer jedoch funktioniert es nicht.

Hier ist der steuerfreie meinem code, dass ist genug, um zu zeigen, das problem:

header('Content-type: text/html; charset=UTF-8');
header('Cache-Control: no-cache, must-revalidate');
$loc = urlencode($_GET['loc']);
echo $address = "http://maps.googleapis.com/maps/api/geocode/json?address=$loc&sensor=false";

Den output ($Adresse) in Firefox ist: http://maps.googleapis.com/maps/api/geocode/json?address=k%C3%B6ln+Deutschland&sensor=false (funktioniert!)

Das gleiche im Internet-Explorer ist: http://maps.googleapis.com/maps/api/geocode/json?address=k%F6ln+Deutschland&sensor=false (gibt "INVALID_REQUEST")

Können Sie sehen den Unterschied in der Codierung der ö. In Firefox ist %C3%B6, IE es k%F6.
Wenn ich die user-Eingabe "k%C3%B6ln+Deutschland" zu beginnen, es funktioniert wie ein Charme in Internet Explorer auch.

Wie kann ich mit PHP gewährleisten, dass die Umstellung von meinen besonderen Zeichen ist das gleiche im Internet Explorer wie im Firefox. Also ö = %C3%B6-statt ö = k%F6

Vielen Dank!

Paul

InformationsquelleAutor Paul Riedel | 2011-11-30

Schreibe einen Kommentar