encodage utf-8 popup et firefox 3.0.1

HTML5, CSS3, Javascript, support des mobiles... Que penser de votre site ? Vous manquez d'informations pour la construction d'un site qui puisse s'afficher correctement partout ? C'est un problème simple, un peu complexe ? Venez ici !
loupiote
Arias
Messages : 3
Inscription : 14 sept. 2008, 07:27

encodage utf-8 popup et firefox 3.0.1

Message par loupiote »

Bonjour,

Nouveau sur ce forum, j'espère que vous pourrez m'aider à résoudre ce problème que je rencontre avec firefox.
Sur mon site, j'utilise les popups pour faire des notes de renvoi. Elles ne s'ouvrent que si le visiteur clique sur le lien correspondant.
Je rencontre un problème important avec les popups qui contiennent du texte comprenant des accents
Voici une page de test rédigée spécialement pour ce problème

http://www.laloupiote.net/Cours/social2 ... php?id=452

Cette page est entièrement rédigée en utf-8 comme l'indique l'entête de la page. La première popup renvoie à un fichier /include/popuplien.php qui contient la mise en forme générale des popups du site.
La deuxième renvoie vers un fichier /include/popuplien1.php qui a exactement le même contenu que le précédent sauf que j'y ai rajouté une lligne qui modifie le texte de la popup en utilisant la fonction php htmlentities()

D'après mes tests, la première popup s'affiche correctement avec IE6 et opera, mais pas la seconde (les caractères accentués sont remplacés par des signes incompréhensibles).

Avec Firefox 3.0.1, j'obtiens des résultats complexes.

Si j'utilise mon pc de bureau (qui est sous linux Fedora 9) j'ai un résultat complètement inversé : la première popup affiche mal les caractères accentués, comme si firefox transformait le texte de ma popup en iso-8859-15), mais la seconde s'affiche correctement
Des utilisateurs Linux qui utilisent aussi firefox 3.0.1 ont quelquefois des résultats différents !
Moi-même, je n'obtiens pas le même résultat sous Linux selon que je me connecte sur cette page à partir du serveur apache que j'ai installé sur ma machine ou à partir du serveur de mon hébergeur (APINC) !!!

Si j'utilise mon portable qui est sous windows XP et firefox 3.0.1, j'obtiens exactement les mêmes résultats que pour les autres navigateurs
Enfin, il me semble que le problème est nouveau et n'existait pas avec Firefox 2.xxx (mais, ça, je ne peux pas le garantir. En tout cas, je ne l'avais pas repéré).

Aussi bien sous Linux que sous XP, j'ai mis ce que je croyais bien de mettre : dans le menu Affichage de Firefox => Encodage de caractères => Détection automatique => Universel
Sous les deux systèmes, firefox ouvre bien la page de test et les popups en utilisant l'encodage indiqué dans leur entête utf-8
J'ai essayé de modifier le charset dans l'entête de la popup n°1 et cela inverse le résultat : lorsque cette popup s'affichait correctement, elle s'affiche désormais buggée et lorsqu'elle s'affichait buggée, elle s'affiche correctement.

Si j'utilise konqueror 4.1, aucune des deux popups ne s'affiche correctement (par contre avec konqueror 3.5, pas de problème pour la première).

Bien sûr, ce que je voudrais, c'est que tous les visiteurs, quel que soit le navigateur qu'ils utilisent obtiennent un affichage correct des popups

J'espère avoir été complet dans ma présentation du problème
Auriez-vous des idées ? Est-ce que cela ne constitue pas un bug ?

En vous remerciant de votre attention si vous avez lu ce (long) message jusqu'au bout :)

Cordialement,

Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1
Geo Lours - La loupiote
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

Il n'est pas sûr de mettre des caractères accentués dans les URL. Il vaut mieux les encoder. Si tu es en php : http://www.php.net/manual/fr/function.urlencode.php :wink:

Cela dit, je trouve la navigation extrêmement bordélique avec tous ces popups qui s'ouvrent, se ferment toutes seules, les liens qui s'ouvrent ensuite dans ton menu de gauche sans qu'on sache vraiment à l'avance ce qui va se passer... je suis généralement opposé aux popups et aux frames, mais ici c'est vraiment atroce, je pense que tu devrais sérieusement réfléchir à la manière de simplifier ta navigation :wink:

Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.9.0.1) Gecko/2008072820 Firefox/3.0.1
loupiote
Arias
Messages : 3
Inscription : 14 sept. 2008, 07:27

Message par loupiote »

calimo a écrit :Il n'est pas sûr de mettre des caractères accentués dans les URL. Il vaut mieux les encoder. Si tu es en php : http://www.php.net/manual/fr/function.urlencode.php :wink:
Merci de ton aide, mais...

D'abord, le contenu même de la page est inséré dans une base mysql et est appelé dans l'adresse en fonction de son id. Dans ma page de test, par exemple, c'est la page avec l'id 452 qui est appelée par la page index.php. Il me semble me souvenir que le php ne fonctionnait pas dans ces conditions

D'autre part, si ce premier obstacle est franchi, comment je fais pour insérer le texte de ma popup dans mon code javascript ?
<a href="javascript:OuvrirFenetre('/include/popuplien.php?fenetre1=3&note1=plein de caractères accentués : é : &eacute; è : &egrave; à : &agrave;... etc. etc...>
Je ne peux pas insérer des balises php à l'intérieur du code javascript ?



calimo a écrit :Cela dit, je trouve la navigation extrêmement bordélique avec tous ces popups qui s'ouvrent, se ferment toutes seules, les liens qui s'ouvrent ensuite dans ton menu de gauche sans qu'on sache vraiment à l'avance ce qui va se passer... je suis généralement opposé aux popups et aux frames, mais ici c'est vraiment atroce, je pense que tu devrais sérieusement réfléchir à la manière de simplifier ta navigation :wink:

Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.9.0.1) Gecko/2008072820 Firefox/3.0.1
OK merci encore, mais ne parlons pas de cela pour le moment. Voilà, j'ai enlevé le lien qui restait dans cette popup par erreur comme ça, il n'y a plus de problème de navigation. Je voudrais savoir comment faire pour que mes notes de renvoi qui sont rédigées en français, donc avec des accents apparaissent correctement avec Firefox aussi bien sous linux que sous windows

Dimanche 14 septembre 2008 à 14h51
Je crois que j'ai trouvé quelque chose qui fonctionne avec tous les navigateurs, sauf konqueror 4.1 : cf la deuxième popup
Dans la fenêtre de la popup /include/popuplien.php, il faut rajouter une ligne qui introduit la fonction utf8_encode()
Firefox modifie l'encodage du texte de la note en le transmettant vers la popup. Cette fonction rétablit les choses avant d'affiche ce texte dans la popup.
$_GET[$note] = utf8_encode($_GET[$note]);
et, a priori, ça a l'air de fonctionner
Geo Lours - La loupiote
loupiote
Arias
Messages : 3
Inscription : 14 sept. 2008, 07:27

Message par loupiote »

Il faut aussi ajouter la fonction htmlentities en précisant que j'utilise utf-8 parce que cette fonction a pour charset par défaut ISO-8859-1,
Si on utilise un autre encodage, utf-8 par exemple, il faut le lui dire
$_GET[$note] = htmlentities($_GET[$note],ENT_QUOTES,'UTF-8');

Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1
Geo Lours - La loupiote
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 4 invités