Mais pas IE!
Bonjour à tous.
Alors voilà mon souci.
Mon appli utilise une base CouchDb pour stocker ses données, qui doivent donc être encodées en UTF-8. J'utilise le framework Zend, sur serveur Xampp sous Windows.
J'ai bien dit à php d'utiliser l'UTF-8 ("mb_internal_encoding( 'UTF-8' );" au début de l'appli).
J'ai bien indiqué le bon doc type au début de la page (<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">), avec l'encodage UTF-8.
J'ai aussi positionné l'attribut accept-charset="UTF-8" pour les formulaires.
Résultat: je reçois bien les bons caractères accentués avec IE, ils sont transformés comme je m'y attends partout, tout va bien.
Avec FF et Safari, rien ne va plus.
Je viens de vérifier avec FireBug que je recevais bien les bonnes données ('éè' par exemple) en surchargeant la méthod isValid de Zend_Form, mais lorsque Zend me réaffiche mon formulaire, au lieu de "éè" (avec IE), j'obtiens "éÃ"
Il semblerait que Zend_Form fasse un html_entities sur le contenu des données envoyées, mais la convertion n'est pas bonne depuis Firefox et Safari.
J'ai fait un mb_detect_encoding sur les valeurs reçues, et c'est bien de l'UTF-8.
Alors voilà, je suis perdu.
Je ne comprends pas comment "é" devient "é" avec FF et Safari et "é" avec IE, alors que les données reçues semblent pourtant identiques et correctes.
Au secours! SVP!
Bonjour à tous.
Alors voilà mon souci.
Mon appli utilise une base CouchDb pour stocker ses données, qui doivent donc être encodées en UTF-8. J'utilise le framework Zend, sur serveur Xampp sous Windows.
J'ai bien dit à php d'utiliser l'UTF-8 ("mb_internal_encoding( 'UTF-8' );" au début de l'appli).
J'ai bien indiqué le bon doc type au début de la page (<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">), avec l'encodage UTF-8.
J'ai aussi positionné l'attribut accept-charset="UTF-8" pour les formulaires.
Résultat: je reçois bien les bons caractères accentués avec IE, ils sont transformés comme je m'y attends partout, tout va bien.
Avec FF et Safari, rien ne va plus.
Je viens de vérifier avec FireBug que je recevais bien les bonnes données ('éè' par exemple) en surchargeant la méthod isValid de Zend_Form, mais lorsque Zend me réaffiche mon formulaire, au lieu de "éè" (avec IE), j'obtiens "éÃ"
Il semblerait que Zend_Form fasse un html_entities sur le contenu des données envoyées, mais la convertion n'est pas bonne depuis Firefox et Safari.
J'ai fait un mb_detect_encoding sur les valeurs reçues, et c'est bien de l'UTF-8.
Alors voilà, je suis perdu.
Je ne comprends pas comment "é" devient "é" avec FF et Safari et "é" avec IE, alors que les données reçues semblent pourtant identiques et correctes.
Au secours! SVP!

