Salut Yann ! 

> -----Original Message-----
> From: yann cochard 
> Un utilisateur vient de me faire part d'un petit problème d'encodage
> d'URL : ça marche bien avec Mozilla Firefox, mais pas avec internet
> explorer.
> Pour tester, allez sur cette page :
> http://www.cactuspro.com/encyclo/liste_botanistes
> Cliquez sur un nom qui contient un caractère accentué : ça marche avec
> Firefox, mais pas avec ie.

Je viens de tester. Mozilla Firefox est quand même bien plus rusé que IE...
Il se pourrait qu'un encodage différent trompe IE : quand je clique sur le lien 
de Eugène Jean Drouhard, l'accent se met bien dans l'URL, mais doit être mal 
interprété par le serveur web en face car transmise dans un encodage pas 
compatible avec celui du serveur web. J'en veux pour preuve l'interprétation du 
résultat : 
"Drouhard, Eugène-Jean" Typiquement, ca correspond à de l'UTF8 affiché en 
ISO8859-1, ou l'inverse. C'est pour ca qu'il me semble que le W3C recommande la 
notation à base de %xx pour tous les caractères non ASCII. Firefox fait la 
conversion à la volée...
> 
> J'ai plein de questions maitenant :
> Pourquoi une telle différence de comportement ?

D'un côté le navigateur respecte la norme, de l'autre, on compile les effets de 
bord. J'ai fait mon choix !

> Et comment régler ce problème ?
> 
> La première idée, c'est de faire des URL sans accents. ça je 
> sais faire.

Probablement la solution la plus simple (et du coup la meilleure à mon avis. 
Par contre, ca implique peut-être de changer le schéma de ta base de donnée 
pour inclure la chaine de caractère convertie sans accents en vue de la 
création d'un index efficace.

> La 2ème, c'est être capable de récupérer les bonnes infos de la
> requète http faite par IE. Avec du urldecode ou autre fonction PHP
> peut-être ?

Hum... Bof, ca fait un cas particulier pour un browser dont on ne maitrise ni 
le comportement actuel ni le comportement futur. Beaucoup d'effort pour pas 
grand chose je pense. Et puis ca risque de demander du "parsing" un peu 
complexe à écrire et à maintenir. Il vaut ptet mieux pas mettre les effets de 
bord chez toi. Laisse les dans le navigateur :)

> Quelle solution serait la meilleure ? Wikipedia fait des urls avec
> accents, mais est-ce bien ?

Marrant, quand je demande sous IE une définition wikipédia de Eugène, l'URL 
ressemble un peu à ce que j'ai cité plus haut :
http://fr.wikipedia.org/wiki/Eugène
Comme quoi, il y a un jonglage avec les encodages qui renforce la confusion 
générale. A mon avis, mieux vaut proscrire les accents ou passer en notation 
%xx.

> Il est prévu dans quelques temps d'autoriser les urls avec des *vrais*
> caractères accentués dedans, et pas du %xx comme %E8 pour è. Faut-il
> déjà s'y mettre pour ne pas avoir à changer plus tard ?

Si la norme évolue, combien de temps mettra IE pour s'y conformer ?
Je ne parirai pas là dessus !

A bientôt Yann

Flow

Diffusez cette liste aupres de vos relations :)
     Linux Azur : http://linux-azur.org
Se desabonner : http://linux-azur.org/liste.php3
*** Pas de message SMS, HTML ni de PJ SVP ***

Répondre à