Page 1 sur 1

Pb avec META et refresh

Publié : 24 juil. 2007, 15:04
par Nicolas38
Bonjour,

J'utilise la balise META de type refresh dans une page WEB de la manière suivante :
<META HTTP-EQUIV="refresh" CONTENT="5; URL=Diaporama.py?folder=./Maison&index=2">

Ca marche bien sauf quand j'ai des caractères accentués dans l'url comme ici :
<META HTTP-EQUIV="refresh" CONTENT="5; URL=Diaporama.py?folder=./Bébé&index=1">

Le problème n'existe pas avec IE 7.

Nicolas

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.5) Gecko/20070713 Firefox/2.0.0.5

Publié : 24 juil. 2007, 16:15
par calimo
Les caractères accentués sont toujours un problème délicat. Si c'est possible, fais en sorte de les éviter dans les adresses (il y a des problèmes de codage, je ne sais pas comment se comporte python, mais IE et Firefox les envoient dans différents codages... aucun n'a tort ni raison) :wink:

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.5) Gecko/20070713 Firefox/2.0.0.5

Publié : 24 juil. 2007, 17:48
par Benoit
Je ne connais rien à Python, mais d'après une petite recherche tu dois utiliser urllib.urlencode lors de la génération de ton lien.

En suivant l'exemple donné sur http://www.oreillynet.com/pub/h/476 ça devrait donner quelque chose comme ça :

Code : Tout sélectionner

import sys
from urllib import urlencode
dossier = "./Bébé"
dossier = urlencode({'folder':dossier})
Ce qui devrait te donner la chaîne qu'il faut pour mettre dans l'URL :

Code : Tout sélectionner

folder=./B%E9b%E9

Publié : 24 juil. 2007, 22:52
par Nicolas38
J'essaye d'éviter les problèmes d'encodage de caractères en utilisant le codage à la HTML mais ce n'est pas toujours évident/possible.
J'insère une balise META pour fixer l'encodage des caractères de mes pages HTML :
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

La méthode urlencode n'est pas la bonne mais cela m'a mis sur la bonne voie. Comme j'utilise un framework, je n'avais pas pensé à utiliser les méthodes de base de la librairie python. La bonne méthode est donc pathname2url. Mais du coup, il me faut utiliser url2pathname. Mais ça marche.

Merci à tous les deux pour vos réponses.

Nicolas

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.5) Gecko/20070713 Firefox/2.0.0.5

Publié : 24 juil. 2007, 22:59
par Nicolas38
Un p'tit oubli :

Le problème à résoudre n'existe qu'avec la balise META de type REFRESH. Avec les autres url définies dans la page, il n'y a pas de problème.

Ca ressemble fort à un bug de Firefox. Ca mériterait peut-être à être remonté aux développeurs ?

Nicolas

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.5) Gecko/20070713 Firefox/2.0.0.5

Publié : 25 juil. 2007, 08:35
par calimo
Cela dépend, en particulier si ta page est en mode standard ou de compatibilité... que te disent les informations sur la page ? Peut-on voir la page en question ?

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.5) Gecko/20070713 Firefox/2.0.0.5

Publié : 25 juil. 2007, 16:00
par Nicolas38
La page en question n'est pas encore publique.
Les infos sur la page me disent que le mode de rendu est : mode de compatibilité.

Nicolas

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.5) Gecko/20070713 Firefox/2.0.0.5

Publié : 25 juil. 2007, 17:43
par calimo
Nicolas38 a écrit :Les infos sur la page me disent que le mode de rendu est : mode de compatibilité.
Donc tu ne peux pas rapporter de bug (ou bien plutôt, on risque bien de te répondre que ça a été fait volontairement pour pallier à un problème sur tel ou tel site, mimant le comportement d'un ancien navigateur) :wink:

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.5) Gecko/20070713 Firefox/2.0.0.5

Publié : 25 juil. 2007, 22:23
par Nicolas38
Bon ben je laisse tomber alors.

Le principal, c'est que j'aie une solution qui marche.

Merci

Nicolas

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.5) Gecko/20070713 Firefox/2.0.0.5