Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

IE7 et Opera Convertissent les URLs en UTF8

11 réponses
Avatar
JalaL
Bonjour a tous,

Je suis en train de recoder un portail en php, et je souhaire utiliser
mod_rewrite pour generer des url plus courtes.

Je teste mon portail sous firefox et tout fonctionne tres bien, sauf
pour IE7 et Opera. Les URLs sont converties en UTF8 et mes parametres
que je passe dans le PATH de l'URL ne fonctionnent plus (mots en arabe
surtout).

Est ce qu'il y a un moyen pour detourner ce probleme au niveau du
serveur. Il serait plus simple que j'utilise UTF8 dans tous le portail,
mais celui-ci contient deja bcp de données et j'ai peur que la
conversion ne soit pas tres efficace.

10 réponses

1 2
Avatar
rm
Le samedi 26 mai 2007 à 22:38, JalaL a écrit :

Bonjour a tous,



Salut,

Je suis en train de recoder un portail en php, et je souhaire utiliser
mod_rewrite pour generer des url plus courtes.

Je teste mon portail sous firefox et tout fonctionne tres bien, sauf
pour IE7 et Opera. Les URLs sont converties en UTF8 et mes parametres
que je passe dans le PATH de l'URL ne fonctionnent plus (mots en arabe
surtout).

Est ce qu'il y a un moyen pour detourner ce probleme au niveau du
serveur. Il serait plus simple que j'utilise UTF8 dans tous le portail,
mais celui-ci contient deja bcp de données et j'ai peur que la
conversion ne soit pas tres efficace.



Pourrais tu préciser une URL afin de voir de visu le problème, si problème
de non conformité du navigateur il y a ?
Si l'url contient des caractères non-ASCII, il ne parait pas anormal de
convertir en "UTF-8", non ?
Par contre, chaque navigateur, pour des raisons de sécurité anti-phishing à
priori, peut se comporter différemment face à ce type d'url, ou d'IRI...
avec par exemple des systèmes de listes blanches ou autres subtilités :)
voir voir http://www.w3.org/International/articles/idn-and-iri/ et
http://www.w3.org/International/tests/results/results-idn-display

Opera accepte bien de suivre (contrairement à Fx2) un lien comme celui du
test http://www.w3.org/International/tests/sec-iri-3 mais pour d'éventuels
détails voir http://www.opera.com/support/search/view/788/

As-tu essayé, aussi, de décocher, dans Opera, "Encoder toutes les adresses
avec UTF-8" via le menu outils > préférences > avancées > réseau ou,
autrement dit, opera:config#Network|UTF8EscapeURLs ?

@+
--
rm - http://opera-fr.com
Avatar
JalaL
rm a écrit :
Le samedi 26 mai 2007 à 22:38, JalaL a écrit :

Bonjour a tous,



Salut,

Je suis en train de recoder un portail en php, et je souhaire utiliser
mod_rewrite pour generer des url plus courtes.

Je teste mon portail sous firefox et tout fonctionne tres bien, sauf
pour IE7 et Opera. Les URLs sont converties en UTF8 et mes parametres
que je passe dans le PATH de l'URL ne fonctionnent plus (mots en arabe
surtout).

Est ce qu'il y a un moyen pour detourner ce probleme au niveau du
serveur. Il serait plus simple que j'utilise UTF8 dans tous le portail,
mais celui-ci contient deja bcp de données et j'ai peur que la
conversion ne soit pas tres efficace.



Pourrais tu préciser une URL afin de voir de visu le problème, si problème
de non conformité du navigateur il y a ?
Si l'url contient des caractères non-ASCII, il ne parait pas anormal de
convertir en "UTF-8", non ?
Par contre, chaque navigateur, pour des raisons de sécurité anti-phishing à
priori, peut se comporter différemment face à ce type d'url, ou d'IRI...
avec par exemple des systèmes de listes blanches ou autres subtilités :)
voir voir http://www.w3.org/International/articles/idn-and-iri/ et
http://www.w3.org/International/tests/results/results-idn-display

Opera accepte bien de suivre (contrairement à Fx2) un lien comme celui du
test http://www.w3.org/International/tests/sec-iri-3 mais pour d'éventuels
détails voir http://www.opera.com/support/search/view/788/

As-tu essayé, aussi, de décocher, dans Opera, "Encoder toutes les adresses
avec UTF-8" via le menu outils > préférences > avancées > réseau ou,
autrement dit, opera:config#Network|UTF8EscapeURLs ?

@+



Merci pour ta reponse,

En fait, FF2 n'encore pas les URLs en utf8 par defaut, il faut l'activer
dans en allant sur about:config.

Mon souci c'est que dans mes pages je n'utilise pas UTF8, vu que IE7 et
Opera encodent les URLs en UTF8 je perd les parametres que je passe dans
l'URL du genre http://www.monsite.com/tags/X/mots_clé/Y (XÊtegorie de
recherche, Y=page de resultat a afficher). Certains mots clé en Arabe ne
sont pas reconnus parce qu'ils changent d'encodage et du coup aucun
resultat ne s'affiche.

Je cherche une solution niveau serveur, c'est plus simple, pour ne pas
obliger tous mes visiteurs a changer les parametres de leur navigateur
et desactiver l'encodage des URLs en UTF8. J'ai bien peur d'etre obligé
a migrer ma base de données en UTF8
Avatar
JalaL
JalaL a écrit :
rm a écrit :
Le samedi 26 mai 2007 à 22:38, JalaL a écrit :

Bonjour a tous,



Salut,

Je suis en train de recoder un portail en php, et je souhaire
utiliser mod_rewrite pour generer des url plus courtes.

Je teste mon portail sous firefox et tout fonctionne tres bien, sauf
pour IE7 et Opera. Les URLs sont converties en UTF8 et mes parametres
que je passe dans le PATH de l'URL ne fonctionnent plus (mots en
arabe surtout).

Est ce qu'il y a un moyen pour detourner ce probleme au niveau du
serveur. Il serait plus simple que j'utilise UTF8 dans tous le
portail, mais celui-ci contient deja bcp de données et j'ai peur que
la conversion ne soit pas tres efficace.



Pourrais tu préciser une URL afin de voir de visu le problème, si
problème
de non conformité du navigateur il y a ?
Si l'url contient des caractères non-ASCII, il ne parait pas anormal de
convertir en "UTF-8", non ?
Par contre, chaque navigateur, pour des raisons de sécurité
anti-phishing à
priori, peut se comporter différemment face à ce type d'url, ou d'IRI...
avec par exemple des systèmes de listes blanches ou autres subtilités :)
voir voir http://www.w3.org/International/articles/idn-and-iri/ et
http://www.w3.org/International/tests/results/results-idn-display

Opera accepte bien de suivre (contrairement à Fx2) un lien comme celui du
test http://www.w3.org/International/tests/sec-iri-3 mais pour
d'éventuels
détails voir http://www.opera.com/support/search/view/788/

As-tu essayé, aussi, de décocher, dans Opera, "Encoder toutes les
adresses
avec UTF-8" via le menu outils > préférences > avancées > réseau ou,
autrement dit, opera:config#Network|UTF8EscapeURLs ?

@+



Merci pour ta reponse,

En fait, FF2 n'encore pas les URLs en utf8 par defaut, il faut l'activer
dans en allant sur about:config.

Mon souci c'est que dans mes pages je n'utilise pas UTF8, vu que IE7 et
Opera encodent les URLs en UTF8 je perd les parametres que je passe dans
l'URL du genre http://www.monsite.com/tags/X/mots_clé/Y (XÊtegorie de
recherche, Y=page de resultat a afficher). Certains mots clé en Arabe ne
sont pas reconnus parce qu'ils changent d'encodage et du coup aucun
resultat ne s'affiche.

Je cherche une solution niveau serveur, c'est plus simple, pour ne pas
obliger tous mes visiteurs a changer les parametres de leur navigateur
et desactiver l'encodage des URLs en UTF8. J'ai bien peur d'etre obligé
a migrer ma base de données en UTF8



C'est reglé, apres quelques essais, j'ai reussi a mettre en place une
ligne de code qui permet de voir si l'encodage a changé (visiteur sous
IE7 ou Opera) ou pas (FF2), et convertis le paramtre dans le code
souhaité s'il le faut.
Avatar
JalaL
JalaL a écrit :
Bonjour a tous,

Je suis en train de recoder un portail en php, et je souhaire utiliser
mod_rewrite pour generer des url plus courtes.

Je teste mon portail sous firefox et tout fonctionne tres bien, sauf
pour IE7 et Opera. Les URLs sont converties en UTF8 et mes parametres
que je passe dans le PATH de l'URL ne fonctionnent plus (mots en arabe
surtout).

Est ce qu'il y a un moyen pour detourner ce probleme au niveau du
serveur. Il serait plus simple que j'utilise UTF8 dans tous le portail,
mais celui-ci contient deja bcp de données et j'ai peur que la
conversion ne soit pas tres efficace.



C'est reglé
Avatar
Pierre Goiffon
JalaL wrote:
Je teste mon portail sous firefox et tout fonctionne tres bien, sauf
pour IE7 et Opera. Les URLs sont converties en UTF8 et mes
parametres que je passe dans le PATH de l'URL ne fonctionnent plus
(mots en arabe surtout).









De ce que j'ai retenu les paramètres dans les URL générés par un form en
GET sont transmis avec le même codage que celui lequel la page contenant
le form a été envoyée.
Cependant, il me semble me rappeler qu'un bout de RFC préconise très
fermement d'utiliser systématiquement UTF-8 pour tout ce qui est envoyé
dans l'URL ?

C'est reglé, apres quelques essais, j'ai reussi a mettre en place une
ligne de code qui permet de voir si l'encodage a changé (visiteur sous
IE7 ou Opera) ou pas (FF2), et convertis le paramtre dans le code
souhaité s'il le faut.



Je suis assez intéressé par le sujet et suis assez persuadé de ne pas
être le seul... Pourriez-vous apporter plus de précisions ? J'aimerai en
particulier savoir si les paramètres en question étaient générés par un
formulaire (et dans ce cas si la page est bien envoyée avec les bonnes
informations de charset ?) ou pour une requête XHR ? Et comment
avez-vous détecté de détection du "changement de codage" ?
Avatar
Jean-Marc Desperrier
Pierre Goiffon wrote:
De ce que j'ai retenu les paramètres dans les URL générés par un form en
GET sont transmis avec le même codage que celui lequel la page contenant
le form a été envoyée.
Cependant, il me semble me rappeler qu'un bout de RFC préconise très
fermement d'utiliser systématiquement UTF-8 pour tout ce qui est envoyé
dans l'URL ?



La RFC applicable indique que le jeu de caractère à utiliser dans l'URL
est UTF-8, le traitement "historique" est d'utiliser celui de la page.
Fx envoit la partie adresse de l'URL en UTF-8. Apache a un traitement
évolué pour s'y retrouver quelque soit l'encodage (celui de la page ou
UTF-8), donc cette partie pose très peu de problème de compatibilité, le
changement a été sans difficulté.

Les paramètres eux sont transmis par Apache sans transcodage aux
scripts, et quand les nightlies de Fx ont commencés à les envoyer en
UTF-8 cela a généré des problèmes avec de nombreux scripts non compatibles.

Pour les versions "release" de Fx, le comportement a donc été changé et
les paramètres sytématiquement envoyé dans l'encodage de la page pour
compatiblité avec les anciens scripts, avec une option about:config pour
utiliser UTF-8. Mais si IE7 et Opera sont tous deux passés à UTF-8, il
faudrait pousser l'équipe Fx à revenir par défaut au comportement standard.

J'aimerais bien savoir à partir de quelle version Opera envoie les
paramètres en UTF-8.
Avatar
rm
Salut,
Le mardi 29 mai 2007 à 13:38, Jean-Marc Desperrier a écrit :

Pierre Goiffon wrote:
De ce que j'ai retenu les paramètres dans les URL générés par un form en
GET sont transmis avec le même codage que celui lequel la page contenant
le form a été envoyée.
Cependant, il me semble me rappeler qu'un bout de RFC préconise très
fermement d'utiliser systématiquement UTF-8 pour tout ce qui est envoyé
dans l'URL ?


[...]
Pour les versions "release" de Fx, le comportement a donc été changé et
les paramètres sytématiquement envoyé dans l'encodage de la page pour
compatiblité avec les anciens scripts, avec une option about:config pour
utiliser UTF-8. Mais si IE7 et Opera sont tous deux passés à UTF-8, il
faudrait pousser l'équipe Fx à revenir par défaut au comportement standard.

J'aimerais bien savoir à partir de quelle version Opera envoie les
paramètres en UTF-8.



J'ai une 6.02 qui envoie, comme les versions 7, 8 et 9 suivantes, le lien
http://www.w3.org/International/articles/idn-and-iri/JP??/??????.html de
http://www.w3.org/International/tests/sec-iri-3 , via un
GET
/International/articles/idn-and-iri/JP%E7%B4%8D%E8%B1%86/%E5%BC%95%E3%81%8D%E5%89%B2%E3%82%8A%E7%B4%8D%E8%B1%86.html
HTTP/1.1
donc en UTF-8, si je comprends bien :)
alors qu'une 5.11 envoie
GET /International/articles/idn-and-iri/JP.%5B../.........%5B...html
HTTP/1.1

le Changelog de la v6.00 finale du 18/12/2001 indique "Support for
international URLs"
http://www.opera.com/docs/changelogs/windows/600/

@+
--
rm - http://opera-fr.com
Avatar
Jean-Marc Desperrier
> J'ai une 6.02 qui envoie, comme les versions 7, 8 et 9 suivantes, le lien
http://www.w3.org/International/articles/idn-and-iri/JP??/??????.html de
http://www.w3.org/International/tests/sec-iri-3 , via un
GET
/International/articles/idn-and-iri/JP%E7%B4%8D%E8%B1%86/%E5%BC%95%E3%81%8D%E5%89%B2%E3%82%8A%E7%B4%8D%E8%B1%86.html
HTTP/1.1



Oui, mais non ça compte pas :-)

La partie que Fx n'envoie pas en UTF-8, ce sont uniquement les
paramètres de CGI. Pour un lien comme celui que tu cite, il envoira tout
en UTF-8.

Il faudrait pour tester ce qu'il se passe avec les paramètres de CGI une
url du modèle de celle-ci :
http://www.w3.org/International/articles/idn-and-iri/fr.cgi?test¬centué
Avatar
rm
Le mardi 29 mai 2007 à 19:00, Jean-Marc Desperrier a écrit :

J'ai une 6.02 qui envoie, comme les versions 7, 8 et 9 suivantes, le lien
http://www.w3.org/International/articles/idn-and-iri/JP??/??????.html de
http://www.w3.org/International/tests/sec-iri-3 , via un
GET
/International/articles/idn-and-iri/JP%E7%B4%8D%E8%B1%86/%E5%BC%95%E3%81%8D%E5%89%B2%E3%82%8A%E7%B4%8D%E8%B1%86.html
HTTP/1.1



Oui, mais non ça compte pas :-)

La partie que Fx n'envoie pas en UTF-8, ce sont uniquement les
paramètres de CGI. Pour un lien comme celui que tu cite, il envoira tout
en UTF-8.



Je sais pas... Firefox 2.0.0.3 envoie
GET
/International/articles/idn-and-iri/JP%94%5B%93%A4/%88%F8%82%AB%8A%84%82%E8%94%5B%93%A4.html
HTTP/1.1
et se prend donc un HTTP/1.1 404 Not Found
alors que Firefox 3.0a4 envoie tout comme Opera... et affiche la page en
question.

Il faudrait pour tester ce qu'il se passe avec les paramètres de CGI une
url du modèle de celle-ci :
http://www.w3.org/International/articles/idn-and-iri/fr.cgi?test¬centué



l'adresse n'existe pas mais Opera 6 envoie comme Opera9
GET /International/articles/idn-and-iri/fr.cgi?test¬centu%C3%A9 HTTP/1.1
mais pas comme Opera5.11
GET /International/articles/idn-and-iri/fr.cgi?test¬centu. HTTP/1.1
ni Firefox 2 & 3 qui envoient
GET /International/articles/idn-and-iri/fr.cgi?test¬centu%E9 HTTP/1.1

y'en a-t-il un qui "envoie" bien, dis ?

@+
--
rm
Avatar
Jean-Marc Desperrier
rm wrote:
Le mardi 29 mai 2007 à 19:00, Jean-Marc Desperrier a écrit :
La partie que Fx n'envoie pas en UTF-8, ce sont uniquement les
paramètres de CGI. Pour un lien comme celui que tu cite, il envoira tout
en UTF-8.



Je sais pas... Firefox 2.0.0.3 envoie
GET
/International/articles/idn-and-iri/JP%94%5B%93%A4/%88%F8%82%AB%8A%84%82%E8%94%5B%93%A4.html
HTTP/1.1
et se prend donc un HTTP/1.1 404 Not Found
alors que Firefox 3.0a4 envoie tout comme Opera... et affiche la page en
question.



Oups. Donc Firefox 2 n'envoit pas du tout le lien en UTF-8,
contrairement à ce que je pensais.

J'ai pas dû suivre suffisament bien ce qu'était finalement la résolution
du problème.

Il faudrait pour tester ce qu'il se passe avec les paramètres de CGI une
url du modèle de celle-ci :
http://www.w3.org/International/articles/idn-and-iri/fr.cgi?test¬centué



l'adresse n'existe pas mais Opera 6 envoie comme Opera9
GET /International/articles/idn-and-iri/fr.cgi?test¬centu%C3%A9 HTTP/1.1
mais pas comme Opera5.11
GET /International/articles/idn-and-iri/fr.cgi?test¬centu. HTTP/1.1
ni Firefox 2 & 3 qui envoient
GET /International/articles/idn-and-iri/fr.cgi?test¬centu%E9 HTTP/1.1

y'en a-t-il un qui "envoie" bien, dis ?



Opera 6 et 9 suivent strictement la norme.
Firefox 3 semble faire ce que je pensais que Firefox 2 faisait, et
envoyer la base de l'URL en UTF-8, mais les paramètres CGI dans
l'encodage de la page.

A l'occasion ça sera intéressant de vérifier ce que fait Firefox 2 sur
les paramètres CGI quand l'envoi en UTF-8 est activé, mais je n'ai pas
le temps tout de suite.
1 2