IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Problème d'encodage sur différents serveurs


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2004
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 19
    Points : 17
    Points
    17
    Par défaut Problème d'encodage sur différents serveurs
    Bonjour,

    J'ai un petit soucis d'encodage. Pour faire bref, j'effectu une requête AJAX (via la librairie prototype.js) en POST sur une page php. La réponse est renvoyé sous la forme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo Zend_Json::encode(utf8_encode("message"));
    (J'encode en utf8 ici car par défaut, ma librairie javascript pour ajax dialogue en utf8.)

    Un simple alert() javascript affiche le résultat de ma requête.
    Je test en local, tout fonctionne nickel. Je test sur le serveur et là commence le problème des caractères accentués.

    Le système de fichier de mon serveur est en utf_8 donc enlever utf8_encode() de l'envoi de ma réponse solutionne le problème sur mon serveur de prod mais le reporte sur mon serveur de dev.

    Ma question est : Est-il possible en php de détecter ce genre de comportement ? J'ai essayé la commande iconv_get_encoding() sur les 2 serveurs et me renvoient les même paramètres (iso-8859-1). Apache est configuré sur les 2 serveurs pour utiliser iso-8859-1 en encodage par défaut.

    Quelqu'un aurait une idée ?

    ++

    Jedi

  2. #2
    Expert éminent sénior

    Avatar de Deepin
    Homme Profil pro
    Ingénieur - Chef de projet Modélisation/Simulation
    Inscrit en
    Avril 2004
    Messages
    3 164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Afrique Du Sud

    Informations professionnelles :
    Activité : Ingénieur - Chef de projet Modélisation/Simulation
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 164
    Points : 51 026
    Points
    51 026
    Par défaut
    Salut,
    C'est toujours trop chiant ces problemes d encodage.
    As tu regardé mb_detect_encoding()?
    Regarde sur php.net, ya un gar qui propose une fonction isUTF8():
    http://us.php.net/manual/en/function...t-encoding.php
    En esperant que ça taide.
    ++ et bon courage

  3. #3
    Membre à l'essai
    Inscrit en
    Décembre 2004
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 19
    Points : 17
    Points
    17
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    <?php
        function isUTF8($str) {
            if ($str === mb_convert_encoding(mb_convert_encoding($str, "UTF-32", "UTF-8"), "UTF-8", "UTF-32")) {
                return true;
            } else {
                return false;
            }
        }
     
    	if (isUTF8("é"))
    	{
    		echo "UTF8";
    	} else {
    		echo "non UTF8";
    	}
    ?>
    Me renvoi non UTF8 sur les 2 serveurs

  4. #4
    Membre à l'essai
    Inscrit en
    Décembre 2004
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 19
    Points : 17
    Points
    17
    Par défaut
    Je viens de trouver une solution "satisfaisante" à mon problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo Zend_Json::encode(htmlentities("message"));
    et coté javascript, la librairie prototype.js me permet de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert(response.unescapeHTML());
    Ce qui fonctionne sur les 2 serveurs différents

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème d'accent sur un serveur UNIX
    Par geji dans le forum Langage
    Réponses: 6
    Dernier message: 20/04/2006, 08h50
  2. Problème de lettre sur nouveau serveur
    Par gobs dans le forum Langage
    Réponses: 2
    Dernier message: 20/01/2006, 00h31
  3. problème de connection sur un serveur
    Par chti_juanito dans le forum Outils
    Réponses: 1
    Dernier message: 12/01/2006, 22h35
  4. Problème d'encodage sur MySql 4.1
    Par Blanchet dans le forum Outils
    Réponses: 1
    Dernier message: 04/12/2005, 05h53
  5. [9i] Problème de perfomance sur un serveur
    Par Débéa dans le forum Oracle
    Réponses: 3
    Dernier message: 20/09/2005, 18h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo