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

Bibliothèques & Frameworks Discussion :

Encodage UTF-8


Sujet :

Bibliothèques & Frameworks

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2013
    Messages
    200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2013
    Messages : 200
    Points : 102
    Points
    102
    Par défaut Encodage UTF-8
    Bonjour, j'ajoute dans ma BDD (encodage: utf8_general_ci) les info avec CKeditor mais à l'affichage il y a un problème avec les caractères accentués. J'ai suivi cette discussion sur le forum mais ça ne résous pas mon problème

    Ajout dans le fichier config.js

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    config.entities = false;
    config.entities_latin = false;

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    utf8_general_ci n'est pas un encodage, c'est un interclassement.

    http://j-willette.developpez.com/tut...-site-en-utf8/
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2013
    Messages
    200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2013
    Messages : 200
    Points : 102
    Points
    102
    Par défaut
    Merci pour la correction sur la confusion dans mon message. J'ai relu le tuto (déjà lu ) mais ça ne résous pas mon problème.

    Script d'une table:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    CREATE TABLE IF NOT EXISTS `flash` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `texte` text NOT NULL,
      `datecreation` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
      `statut` tinyint(1) NOT NULL,
      `corbeille` tinyint(1) NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB  DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci AUTO_INCREMENT=3 ;
    Script PHP connexion à la BDD
    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
    18
    19
    <?php
    	//Connexion à la base de données
    	try {
     
    	  $dns = 'mysql:host=localhost;dbname=ajmci';
    	  $user = 'root';
    	  $password = '';  
    	  $connect_db = new PDO ($dns, $user, $password);
     
    	  $connect_db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    	  $option = array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8",
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
              PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_OBJ);
    	} 
    	catch (Exception $e) {
    		echo "<h1>Connection au serveur impossibe, erreur:".$e->getMessage()."</h1>";
    		die();
    	}
    ?>
    Fichier htaccess :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AddDefaultCharset utf-8
    NB: en Local j'ai pas de problème.
    Interclassement par défaut pour la connexion au serveur :
    utf8mb4_unicode_ci
    . Peut-il avoir un effet sur ma BDD?

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Est-ce que les accents apparaissent corrects dans phpmyadmin ?

    Vérifie bien l'encodage de tes fichiers PHP.

    Dis nous eventuellement à quoi ressemblent les caractères quand ils sont mal affichés, ça donnera un indice sur le sens du problème.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2013
    Messages
    200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2013
    Messages : 200
    Points : 102
    Points
    102
    Par défaut
    Dans phpmyadmin les caractères sont affichés en comme codé en htmlentities (ex: appostrophe: &rsquo; ).
    Les caractères mal affichés sont dans un losange avec un point ? à l'intérieur: �

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu veux dire que le &rsquo; de ta bdd devient un losange sur la page ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2013
    Messages
    200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2013
    Messages : 200
    Points : 102
    Points
    102
    Par défaut
    Oui

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu utilises un htmlentities_decode() ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Points : 1 022
    Points
    1 022
    Par défaut
    perso je pense plus à l'encodage du fichier... tu as un fichier qui ne serait pas enregistré en utf8...
    Conception / Dev

  10. #10
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2013
    Messages
    200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2013
    Messages : 200
    Points : 102
    Points
    102
    Par défaut
    Oui, j'utilise htmlentities_decode()

  11. #11
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il faut specifier l'encodage dans la fonction alors :
    http://fr2.php.net/manual/fr/functio...ity-decode.php

    enfin le mieux serait de ne pas convertir en entités au départ.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  12. #12
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2013
    Messages
    200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2013
    Messages : 200
    Points : 102
    Points
    102
    Par défaut
    Je ne converti pas en entité au départ, je crois que la conversion est faite par CKeditor. Raison pour laquelle j'ajoute
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    config.entities = false;
    config.entities_latin = false;
    pour mettre la conversion en entité à false.

    L'encodage dans la fonction marche, mais elle peut devenir très vite fastidieuse.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo html_entity_decode(($value->texte), ENT_QUOTES, "UTF-8")
    N'existe t-il pas une autre méthode?

  13. #13
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    je crois que la conversion est faite par CKeditor. Raison pour laquelle j'ajoute
    Ba ça ne marche pas.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  14. #14
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2013
    Messages
    200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2013
    Messages : 200
    Points : 102
    Points
    102
    Par défaut
    Ba oui, je le constacte. Il n'y a pas une autre solution?

  15. #15
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Points : 1 022
    Points
    1 022
    Par défaut
    pour avoir depuis assez longtemps essayé de comprendre pourquoi les codages ne sont pas les mêmes... et avoir cherché ... et avoir trouver des solutions... non, je te confirme que la chose à faire est de t'assurer que le fichier qui contient le CKEDITOR est encodé en utf8, et que lors de l'envoi des données tu envoi du format utf8 ( mais ca c'est par default si les fichier sont encodés en utf8) ... du coup tu cherche à faire quelque chose que normalement ta pas besoin, donc je pense le problème ne viens pas de ou tu penses... ce n'est pas une config à mettre mais vraiment un format de départ que ta pas vu.

    note que mis à part se limiter au niveau du nombre de caractères dans la bdd, il n'y à pas vraiment d’intérêt à utiliser le Latin
    Conception / Dev

  16. #16
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Et pour toi ascito il est normal, utile et pratique de devoir utiliser html_entity_decode() ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  17. #17
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Points : 1 022
    Points
    1 022
    Par défaut
    sabotage > pour te répondre

    moi "html_entity_decode()" je connais ( par coeur ) mais cela me fait penser a l'air des dinosaures...

    En plus depuis php5.2

    il y'a de nouvelles façons de faire.
    Conception / Dev

Discussions similaires

  1. [DOM] Encodage UTF-8 dans fichier XML et PHP
    Par norkius dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 03/01/2007, 15h44
  2. Problème d'affichage avec encodage utf-8
    Par t-die dans le forum Zend
    Réponses: 3
    Dernier message: 04/12/2006, 14h55
  3. [C# 2.0] Comment réaliser un encodage UTF-8 ?
    Par StormimOn dans le forum C#
    Réponses: 2
    Dernier message: 18/10/2006, 10h35
  4. Pb Encodage UTF-8 pour Ooo
    Par Sylvain James dans le forum XMLRAD
    Réponses: 10
    Dernier message: 08/03/2006, 22h28
  5. [WebForms] Encodage, UTF-8 et accents
    Par alexischmit dans le forum Général Dotnet
    Réponses: 4
    Dernier message: 28/04/2004, 12h21

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