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 :

Problème d'encoding : fixtures.yml, generator.yml voire autres [1.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    396
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 396
    Par défaut Problème d'encoding : fixtures.yml, generator.yml voire autres
    Bonjour,

    J'ai écrit des fixtures pour mes objets Doctrine. La langue par défaut étant le français, j'ai forcément recours aux accents.

    Pareil pour les labels de mes champs dans mes generator.yml.

    Une fois mes fixtures loadés en base de données, mes caractères accentués sont mal enregistrés en base. J'obtiens des :
    - Gu?rande et Gu?men?-Penfao au lieu de Guérande et Guéméné-Penfao.

    Pareil pour l'affichage de mes pages HTML :
    - les caractères accentués de mes labels plantent à l'affichage.


    Je fonctionne sous Windows, Symfony 1.4 et utilise Eclipse. Sauriez-vous quel type de problème d'encodage il s'agit ?

  2. #2
    Membre émérite Avatar de Herode
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2005
    Messages
    825
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2005
    Messages : 825
    Par défaut
    Côté serveur web, je suppose que tout est en UTF8. Mais quel est l'encodage utilisé par ta base de données ? Et quel est l'encodage utilisé par ton éditeur ? Si tous ces encodages ne sont pas cohérents, ça peut provoquer ce genre de symptômes.

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    396
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 396
    Par défaut
    Mes tables MySQL ont comme interclassement :
    - latin1_swedish_ci

    Et sous Eclipse j'ai testé différents encodages : UTF-8, US-ASCII et ISO-8859-1

    Je n'ai pas réussi à trouver comment changer l'interclassement de mes tables afin de tout mettre en UTF-8 ...

  4. #4
    Membre émérite Avatar de Herode
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2005
    Messages
    825
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2005
    Messages : 825
    Par défaut
    Pour modifier l'encodage utilisé par une table, je crois qu'il faut passer une requête du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER TABLE ma_table CHARACTER SET utf8 COLLATE utf8_general_ci;
    Avec MySqlAdministrator, tu as un accès direct à ce genre de réglages dans l'interface de gestion des tables. Avec PHPMyAdmin, je ne sais pas.

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    396
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 396
    Par défaut
    Lorsque je créé ma base de données (altérer mes tables ne peut être qu'une solution partielle : lorsque je fais mon "./symfony doctrine:build --all --and-load, toutes mes tables sont effacées puis recréées), je lui spécifie :
    - créer une base de données, interclassement = utf-8 ;
    - interclassement pour les tables mysql = utf-8

    Cependant, lorsque je lance la commande de build, je me retrouve avec des tables qui ont pour interclassement latin1_swedish_ci.

    Pour info, j'ai essayé de forcer le chargement en utf-8 en changeant l'encodage de mes fichiers de projet avec Eclipse, et en ajoutant dans le databases.yml :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    all:
      doctrine:
        class: sfDoctrineDatabase
        param:
          dsn:      mysql:host=localhost;dbname=***
          username: ***
          password: ***
          encoding: utf8
    J'ai pas mal parcouru les forums ce matin, cela parlait de configurer le httpd.conf et un certain my.cnf (fichier que je n'ai pas trouvé sur mon ordi).
    Cependant, pour le moment toujours rien qui marche ...

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    396
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 396
    Par défaut Cela marchait en fait !
    Ah !!

    Alors que j'ai perdu plusieurs heures depuis hier sur ce problème, à chercher quelle était la bonne configuration de l'encodage de : Apache, Eclipse, Symfony, MySQL, etc., je n'avais pas vu un détail flagrant :

    - depuis que j'ai changé l'encodage de mes fichiers Eclipse, mes caractères accentués buggaient dans ces fichiers.

    Il a suffit que je retape le tout correctement et après avoir lancé la tâche Symfony de build, tout s'est bien retrouvé en base aussi bien que dans mes pages HTML !!


    Vu que j'ai touché à pas mal de choses depuis hier, je ne saurais dire exactement ce qu'il suffisait de changer mais la configuration que j'ai décrite juste au-dessus était donc suffisante.

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

Discussions similaires

  1. [1.x] textarea_tag dans mon generator.yml
    Par coupolites dans le forum Symfony
    Réponses: 9
    Dernier message: 12/11/2009, 17h07
  2. [1.x] Modifier l'action = du generator.yml dans les list
    Par thecanea dans le forum Symfony
    Réponses: 1
    Dernier message: 04/11/2009, 15h45
  3. [1.x] Caractères "guillemet" dans le fichier generator.yml
    Par sacricri dans le forum Symfony
    Réponses: 10
    Dernier message: 02/09/2009, 15h12
  4. [1.x] Paramètre "rich=true" pour une date - Generator.yml
    Par sacricri dans le forum Symfony
    Réponses: 1
    Dernier message: 20/04/2009, 15h57
  5. Réponses: 1
    Dernier message: 19/05/2008, 13h12

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