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

Symfony PHP Discussion :

Encodage UTF-8 et ISO-8859-1


Sujet :

Symfony PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 7
    Points : 11
    Points
    11
    Par défaut Encodage UTF-8 et ISO-8859-1
    Bonjour à tous !

    Je développe une application avec Symfony et j'intègre progressivement de l'AJAX avec le framework prototype.

    Mon soucis vient du fait que les requêtes AJAX sont encodées par défaut en UTF-8 et que mon jeux de caractères est ISO-8859-1 : j'obtiens donc des caractères exotiques (losange noir et point d'interrogation).

    J'ai lu qu'il valait mieux tout convertir en UTF-8 pour mon application : j'ai suivi le tuto http://blog.neovov.com/index.php?200...-site-en-utf-8 mais rien n'y fait !

    Dans mes headers HTTP, j'ai bien charset=utf-8, symfony est configuré pour utiliser de l'utf-8 et mes éditeurs de texte sont configurés pour utiliser utf-8 ... Pourtant j'apprends à la fin de ce tuto que lorsqu'on voit des losanges noirs avec point d'interrogation, c'est que le naviguateur décode en utf-8 un fichier iso-8859-1 !!!

    Je ne comprends plus rien !! Please help !!

    Merci d'avance

  2. #2
    Membre à l'essai
    Inscrit en
    Janvier 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 18
    Points : 20
    Points
    20
    Par défaut
    As-tu pensé éventuellement à ajouter une balise META dans le <head> de tes pages pour spécifier l'encodage ?
    Dans certains cas, ça m'a aidé à résoudre ce genre de problème...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 7
    Points : 11
    Points
    11
    Par défaut
    Je te remercie de ta réponse aurapp ...

    J'ai déjà une balise meta dans mon head.
    L'erreur ne venait pas de ma configuration mais en fait de Eclipse PHP où je n'avais pas spécifié correctement l'encodage pour mon espace de travail : j'ai indiqué UTF-8 et maintenant les pages s'affichent correctement ...

    Mon nouveau problème vient de MySQL : j'ai spécifié du utf8_bin pour le charset et c'est PHPMyAdmin qui fait la tête maintenant, il m'indique des erreurs à l'insertion des données alors que mes requêtes sont correctes ...

    Merci beaucoup pour votre aide

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 93
    Points : 87
    Points
    87
    Par défaut
    Bonjour,

    Je ne sais pas si ça peut t'aider, mais comme c'est dit dans cette discussion (2ème message), le problème peut venir de l'encodage de la connexion MySQL.

  5. #5
    Membre à l'essai
    Inscrit en
    Janvier 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 18
    Points : 20
    Points
    20
    Par défaut
    En effet, c'est une possibilité, tu peux regarder en SQL :
    Cela permet de spécifier l'encodage pour la connexion SQL (et donc tes futures requêtes).

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 7
    Points : 11
    Points
    11
    Par défaut
    Merci pour toutes ces idées mais ayant appris tout récemment que phpMyAdmin ne gérait pas correctement l'UTF-8 dans son analyseur de syntaxe, je me suis résigné à ré-utiliser ISO-8859-1 ... et faire des utf8_decode ...

    M'en fiche na la prochaine fois j'utiliserai sql server ...

    Merci encore

  7. #7
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 448
    Points : 2 284
    Points
    2 284
    Par défaut
    Citation Envoyé par Alahel Voir le message
    Merci pour toutes ces idées mais ayant appris tout récemment que phpMyAdmin ne gérait pas correctement l'UTF-8 dans son analyseur de syntaxe, je me suis résigné à ré-utiliser ISO-8859-1 ... et faire des utf8_decode ...

    M'en fiche na la prochaine fois j'utiliserai sql server ...

    Merci encore
    Salut,

    De quel bug parles tu donc ?
    Car des bugs relatifs à utf-8 j'en pas trouver beaucoup dans le bug tracker de phpmyadmin.
    http://sourceforge.net/tracker/index.php

    Et si il est un bug concernant utf-8 et phpmyadmin qui n'est pas cité ci dessus, j'aimerais bien être au courant
    Migrant actuellement une appli vers l'utf-8, par choix, se me serait bien pratique.

    bye

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 7
    Points : 11
    Points
    11
    Par défaut
    Bonjour KayMac,

    Alors j'ai lu que pour que PHP gère correctement l'UTF8, il fallait activer certaines fonctionnalités de la librairie mb_string, car l'encodage UTF8 est incompatible avec les fonctions strlen(). Certaines options permettent de remplacer toutes les occurrences de strlen() rencontrées dans le code PHP par la fonction propre à mb_string, mb_strlen().

    Cette librairie est activée par défaut et est nécessaire au fonctionnement de phpMyAdmin, mais lorqu'on souhaite activer certaines options de mb_string (notamment mb_strlen()), phpMyAdmin signale qu'il est incompatible avec ces fonctionnalités.

    J'ai un script qui remplit ma base de données et certaines occurences sont mal interprétées par l'analyseur syntaxique de phpMyAdmin qui me lance alors des erreurs, alors qu'en le faisant manuellement via un insert SQL simple, ça fonctionne.

    Bref, j'utilise du utf_decode pour récupérer mes paramètres via AJAX, et ça marche du tonnerre ...

    Voilou bon courage

  9. #9
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 448
    Points : 2 284
    Points
    2 284
    Par défaut
    Citation Envoyé par Alahel Voir le message
    Bonjour KayMac,

    Alors j'ai lu que pour que PHP gère correctement l'UTF8, il fallait activer certaines fonctionnalités de la librairie mb_string, car l'encodage UTF8 est incompatible avec les fonctions strlen(). Certaines options permettent de remplacer toutes les occurrences de strlen() rencontrées dans le code PHP par la fonction propre à mb_string, mb_strlen().

    Cette librairie est activée par défaut et est nécessaire au fonctionnement de phpMyAdmin, mais lorqu'on souhaite activer certaines options de mb_string (notamment mb_strlen()), phpMyAdmin signale qu'il est incompatible avec ces fonctionnalités.

    J'ai un script qui remplit ma base de données et certaines occurences sont mal interprétées par l'analyseur syntaxique de phpMyAdmin qui me lance alors des erreurs, alors qu'en le faisant manuellement via un insert SQL simple, ça fonctionne.

    Bref, j'utilise du utf_decode pour récupérer mes paramètres via AJAX, et ça marche du tonnerre ...

    Voilou bon courage
    Hello,

    Effectivement c'est fourbe comme bug.

    Je ferais quelques test pour constater cela !

    Merci !

    a plus et bon courage aussi.

Discussions similaires

  1. Encodage UTF-8 en ISO-8859-1
    Par electrovolt dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 24/09/2012, 14h02
  2. Encodage utf-8 vers iso-8859-15
    Par ruddy32 dans le forum DB2
    Réponses: 1
    Dernier message: 20/03/2012, 10h12
  3. Lecture de fichier: encodage utf-8 et iso-8859-1
    Par WindRider_ dans le forum Langage
    Réponses: 2
    Dernier message: 04/11/2009, 10h23
  4. Encodage : Conversion UTF-8 vers ISO-8859-?
    Par polo54 dans le forum Général Java
    Réponses: 6
    Dernier message: 26/06/2007, 19h10
  5. encodage UTF-8 vers ISO-8859-1
    Par taouja dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 13/04/2007, 11h03

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