PHP : Problème d’encodage au niveau du passage des variables
Bonjour à tous,
Je travaille actuellement sur un projet web iPhone (HTML/PHP/SQL/JS/AJAX avec FrameWork WebApp) avec une base Oracle et Apache :P le tout hébergé sous Windows Server 2003. 8O
Après avoir résolu les erreurs d’encodage des fichiers à l’enregistrement
⇨ encoder en ISO 8859-1 et pas en UTF-8
Utiliser la fonction entête au début des pages php :
⇨ header('Content-Type: text/xml; charset=ISO-8859-1');
Je me heurte maintenant à des problèmes d’encodage au niveau du passage des variables d’un formulaire à une page de traitement (requête POST en AJAX). Je viens de passer une journée entière à essayer de le résoudre en vain. :cry:
Exemples :
( é ) coté formulaire devient ( é ) sur la page de traitement
( ‘ ) coté formulaire devient ( \‘ ) coté traitement
Je m’en suis aperçu car lors du traitement j’utilise :
⇨ htmlentities()
⇨ htmlspecialchar()
Ces deux fonctions ne font absolument rien sur les variables que je voudrais traiter. :?
En effectuant des tests (echo), je me suis aperçu que les variables qui contienne des caractères spéciaux sont directement mal encodé dans le $_POST ! 8O
Voici le problème sur un test simple (méthode GET) :
http://www.imagefreehost.com/files/1...4912166148.png
J’en déduis que c’est un problème au niveau du passage des variables !
Et je ne sais pas comment résoudre ce problème. Mais je pense qu’il faut forcer le navigateur (ici Safari) à passer des variables en ISO-8859-1 et non pas en UTF-8 comme il à l’air de le faire.
Et il faut le forcer à deux endroits :
⇨ Passer les requêtes POST en ISO-8859-1 au niveau d'une requête AJAX.
⇨ Passer les requêtes POST en ISO-8859-1 au niveau du problème simple illustré ci-dessus.
Voilà donc si quelqu'un à une idée ou à l'expérience de ce genre d'aventure ! Je suis preneur d'explications ! :ccool:
Merci d'avance ! :ccool: