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

EDI, CMS, Outils, Scripts et API PHP Discussion :

Problème d'encodage UTF-8 (et un de plus) [phpMyAdmin]


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 284
    Points : 149
    Points
    149
    Par défaut Problème d'encodage UTF-8 (et un de plus)
    Bonjour,

    Après avoir parcourut de nombreux topics à ce sujet je n'ai toujours pas rencontré de cas identique au miens:

    En générale on dit: "ajoute un $bdd->exec('SET NAMES utf8');" et ca fonctionne...

    Pour mon cas je n'ai pas de soucis pour récupérer les accents de ma base de donnée (problème résolu grâce à cette méthode), mais ca ne fonctionne pas lorsque j'insère une donnée qui comporte des accents !

    Exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    	 try
    	 {
    		 $bdd = new PDO('mysql:host=localhost;dbname=ma_table', 'root', '');
    		 $bdd->exec('SET NAMES utf8');
    	 }
    	 catch(Exeption $e)
    	 {
    		 die('Erreur : '.$e->getmessage());
    	 }
     
             $membre0 = htmlspecialchars($_POST['prenom_membre0']);
             $bdd->exec("INSERT INTO membres(prenom) VALUES('".$membre0."')");
    ?>
    Ici phpMyAdmin va m'enregistrer pour "chloé" "chlo?", et si je fais un SELECT, je récupère ce "?" au lieu du "é" dans php...

    Mes tables sont en "latin1_swedish_ci"est-ce correcte ? Quand je les mets en "utf8_bin" ou "utf8_general_ci" il me coupe la chaîne à partir du premier accent rencontré.

    Pourtant les données sont elles bien réceptionnées quand je met les accents en "insertion manuelle" via phpMyAdmin mais mal insérer par "INSERT INTO" etc...

    Désolé de faire un post de plus là dessus, mais ca fait plus de 24h que je cherche une solution pour des problèmes d'accents et c'est vraiment gonflant de perdre autant de temps là dessus...

    Merci !

  2. #2
    Membre confirmé Avatar de guigo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 612
    Points : 576
    Points
    576
    Par défaut
    Salut,
    ca ne serait pas l'encodage de ta page de sortit qui serait mauvais ?
    (La ou tu fais ton echo $x -->cloé)

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 284
    Points : 149
    Points
    149
    Par défaut
    Bonjour,

    Effectivement quand je touche à l'encodage en faisant ce qu'il est censé falloir faire:
    1) Sur notepad++: .Encodage => Encoder en utf-8 (sans BOM)
    .Encodage => Convertir en utf-8 (sans BOM)

    2) Début des fichiers sous la forme suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    session_start();
    ?>
     
    <?php header( 'content-type: text/html; charset=utf-8' ); ?>
     
    <html>
    	<head>
    		<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    		<title>titre</title>
    	</head>
    ...
    </html>
    Lorsque je fais cette manipulation, alors que tous mes accents apparaissaient juste avant, ils sont tous remplacés par des caractères comme "?" pour le "é".

    Exemple:

    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
    <?php
    session_start();
    ?>
     
    <?php header( 'content-type: text/html; charset=utf-8' ); ?>
     
    <html>
    	<head>
    		<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    		<title>titre</title>
    	</head>
    	<body>
    		<?php echo "prxE9m"; ?>
    	</body>
    </html>
    (XE9 étant généré par la conversion de l'encodage en UTF-8 (sans BOM)) ce echo m'affiche "pr�nom", alors je ne saisit pas, j'oublie/je rate quelque chose ? Car le fichier où je fais mes requêtes SQL est structuré exactement comme ci-dessus.

    Cela dit si je pense que ca vient de phpMyAdmin c'est parceque lorsque je regarde dans mes tables je vois que les accents sont remplacés par des caractères spéciaux alors que quand je les insères directement par la commande "insérer" et que je les récupères avec un SELECT, alors là, les accents s'affichent normalement.

    Merci pour l'aide !

    EDIT:

    Problème résolut: Pour ceux qui sont dans le même cas, lorsque vous convertissez tout en utf-8 il faut remplacer les caractère xE9 etc par les accents !

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

Discussions similaires

  1. [Hudson] problème d'encodage utf-8
    Par vincent_17 dans le forum Intégration Continue
    Réponses: 5
    Dernier message: 23/12/2008, 11h56
  2. problème d' encodage utf-8 (je pense en tout cas)
    Par reventlov dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 29/05/2008, 19h47
  3. [DOM] Problème d'encodage UTF-8
    Par Valter dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 14/05/2008, 15h32
  4. Problème d'encodage UTF-8
    Par Shugo78 dans le forum Ubuntu
    Réponses: 0
    Dernier message: 23/11/2007, 19h40
  5. [MySQL] Problème d'encodage UTF-8
    Par cloridriks dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 30/10/2007, 11h19

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