Problème d'encodage

ViPHP
ViPHP | 5924 Messages

16 avr. 2008, 17:41

Il y a un problème d'encodage dans les alertes.
Je ne l'ai remarqué qu'aujourd'hui, je suis sous Opera 9.50b :
Souhaitez-vous alerter les modérateurs afin qu'ils vérifient ce message ? Veuillez ne signaler que les messages que vous suspectez d'enfreindre les règlements de PHPFrance

Mammouth du PHP | 2937 Messages

17 avr. 2008, 13:34

je suis sous Opera 9.50b
Hé, hé ! un courageux :P

As-tu essayé de régler manuellement l'encodage via le menu du navigateur ? ;)

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

17 avr. 2008, 13:47

Apparemment il s'agit d'un bug d'Opera, qui ne peut être corrigé en changeant l'encodage manuellement. (l'encodage de la page étant correct)

ViPHP
ViPHP | 5924 Messages

17 avr. 2008, 13:58

Il faut utiliser quel encodage (que ce soit en ISO, UTF8, ou Windows-latin, ca ne change rien) ?

Une idée de la source du bug que j'essaye de leur signaler s'ils ne le voient pas ?

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

17 avr. 2008, 14:09

L'alert() est déclenché par l'href du lien (pseudo-protocole javascript). La page est en ISO-8859-15, Opera est configuré par défaut pour utiliser des URL en UTF-8 donc en interne l'URL doit être convertie de latin15 à UTF-8, sauf qu'au moment d'exécuter le Javascript la sortie se fait en ISO-8859-15. En gros le moteur Javascript reçoit des données UTF-8 et les affiche en ISO-8859-15, d'où glyphs foireux.

En mettant l'alert() dans un onclick le problème devrait disparaître, sauf que je ne suis pas arrivé à annuler l'évènement (le click) à partir d'un onclick sous MSIE/Fx 2, d'où l'utilisation de Javascript en href.

Mammouth du PHP | 1511 Messages

17 avr. 2008, 15:30

Sous MSIE/FF 2.x, pour utiliser des confirm dans un evenement onlick, il faut faire la chose suivante:

Code : Tout sélectionner

onclick="if(confirm('text')) { return true; } else { return false; }"

ViPHP
ViPHP | 5924 Messages

17 avr. 2008, 19:09

Ouais, de toute façon on verra avec la finale, ce sera signalé si ça persiste.