encoder, de se comporter différemment dans Firefox et Internet Explorer

Je veux envoyer de l'entrée de l'utilisateur de google API de géocodage. En agissant de la sorte, j'ai détecté un problème.
Quand j'envoie la saisie de l'utilisateur (par exemple, "köln+l'Allemagne) par le biais de mon script à l'api dans Firefox, il fonctionne très bien. Dans Internet Explorer, cependant cela ne fonctionne pas.

Voici la exemptés de mon code c'est assez pour montrer le problème:

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";

La sortie ($adresse) dans Firefox est: http://maps.googleapis.com/maps/api/geocode/json?address=k%C3%B6ln+Allemagne&sensor=false (qui fonctionne!)

Les mêmes dans Internet Explorer est: http://maps.googleapis.com/maps/api/geocode/json?address=k%F6ln+Allemagne&sensor=false (renvoie "INVALID_REQUEST")

Vous pouvez voir la différence dans l'encodage de l'anacarde. Dans Firefox, il s %C3%B6, dans IE c'est k%F6.
Si je fais la saisie de l'utilisateur "k%C3%B6ln+Allemagne" pour commencer, il fonctionne comme un charme dans Internet Explorer.

Comment puis-je avec PHP s'assurer que la conversion de mes caractères spéciaux est le même dans Internet Explorer comme Firefox. Donc, ö = %C3%B6 au lieu de ö = k%F6

Merci beaucoup!

Paul

InformationsquelleAutor Paul Riedel | 2011-11-30