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

PHP & Base de données Discussion :

Caractères accentués depuis MySQL [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 28
    Par défaut Caractères accentués depuis MySQL
    Bonjour tout le monde,

    Je suis entrain de migrer un vieux serveur Suse Entreprise, vers Ubuntu serveur. J'ai pu migrer la base mysql sans problème. Le soucis que j'ai, c'est que les pages php générées ne m'affichent aucun champ accentué... Je m'explique :

    Le contenu de ma table :
    Code csv : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    "2008","Abs diverses non rém","488",
    "1045","Congé parental","452",
    "0961","Absence Maladie","400","1"
    "1050","Absence Paternité","455","10"
    "0984","Abs non Autorisée","611","10"
    "0983","Abs Autorisée Jours","615","10"
    "1000","Absence Maladie Prof","430","2"
    "0951","Absence Congés Payés",NULL,"3"
    "0971","Absence Chômage Part","550","4"
    "0991","Absence AT","420","5"
    "1010","Absence Maternité","450","6"
    "0981","Congés sans Solde","650","7"
    "0952","Abs CP en Jours",NULL,"8"
    "0982","Abs Autorisée","610","9"

    Et la page HTML générée :
    Code html : 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
    <select name="Type_1">
            <option value="" selected>Sélectionner la Valeur</option>
    	<OPTION VALUE="2008"></OPTION>
    	<OPTION VALUE="1045"></OPTION>
    	<OPTION VALUE="0961">Absence Maladie</OPTION>
    	<OPTION VALUE="1050"></OPTION>
    	<OPTION VALUE="0984"></OPTION>
    	<OPTION VALUE="0983"></OPTION>
    	<OPTION VALUE="1000">Absence Maladie Prof</OPTION>
    	<OPTION VALUE="0951"></OPTION>
    	<OPTION VALUE="0971"></OPTION>
    	<OPTION VALUE="0991">Absence AT</OPTION>
    	<OPTION VALUE="1010"></OPTION>
    	<OPTION VALUE="0981"></OPTION>
    	<OPTION VALUE="0952">Abs CP en Jours</OPTION>
    	<OPTION VALUE="0982"></OPTION>
    </select>

    J'ai cherché pas mal de configuration sur apache ou php, notamment pour renseigner le charset mais rien n'y fait...

    Une idée pour certains ?

    PS : j'ai accès au code source, mais il sors d'un générateur de code, donc assez indigeste... si il faut je peux fouiller dedans.

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2014
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2014
    Messages : 25
    Par défaut
    Quel est l'encodage de tes fichiers php générés ?

  3. #3
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 28
    Par défaut
    Un peu de tout...

    J'ai déjà ça sur le code source de la page générée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <head>
    <meta http-equiv="content-type" content="text/html; charset=windows-1252">
    <title>Login</title>
    <meta content="CodeCharge Studio 3.1.1.0" name="GENERATOR">
    <link href="Styles/Spring/Style.css" type="text/css" rel="stylesheet">
    <script language="JavaScript" type="text/javascript">
    //Begin CCS script
    //Include JSFunctions @1-252A7665
    </script>
    <script language="JavaScript" src="ClientI18N.php?file=Functions.js&locale=fr" type="text/javascript" charset="utf-8"></script>
    <script language="JavaScript" type="text/javascript">
    Côté paramètres de connexion je n'ai rien trouvé... Je me demandais si il fallait que je change l'encodage de la base mysql directement...

  4. #4
    Membre Expert

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Par défaut
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <meta http-equiv="content-type" content="text/html; charset=windows-1252">

    Tu m'étonnes d'avoir des problèmes d'accents...

    Suis ce tutoriel à la lettre pour avoir un encodage cohérent sur l'ensemble de ton site, ce qui devrait résoudre tes soucis.

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2014
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2014
    Messages : 25
    Par défaut
    Tu as tenté de modifié le charset du HTML genre tester utf8 au lieu de windows-1252 ?

    Si le problème est juste à l'affichage je ne pense pas que cela vienne de ta BDD, surtout si les caractères apparaissent correctement dans ton fichier généré.

  6. #6
    Membre confirmé
    Femme Profil pro
    beler.fr
    Inscrit en
    Mars 2014
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : beler.fr
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2014
    Messages : 25
    Par défaut solution
    Bonjour,

    Pour un encodage des textes avec des diacritiques (que tu peux écrire directement dans les pages html ou sélectionnées de la base de données) il est nécessaire et suffisant :

    1. pages html éditées avec un éditeur qui permet utf-8

    2. le contenu de la page html doit contenir <meta http-equiv="content-type" content="text/html; charset=UTF-8" />

    3. connexion à la base de données configurée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    	mysql_query('SET NAMES utf8', $resMySQL);
    	mysql_query('SET CHARACTER SET utf8', $resMySQL);
    	mysql_query('SET COLLATION_CONNECTION=\'utf8_general_ci\'', $resMySQL);
    4. les champs contenant du texte de type CHARSET=utf8

    Bonne chance,
    Mihaela
    blog.beleringenierie.com/?lang=fr

  7. #7
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 28
    Par défaut
    En fait je voudrais éviter de modifier le code. Il a été généré par CodeCharge il y a très longtemps, et fonctionnait très bien sur l'ancien serveur avec des paramètres apache/php identiques (enfin il me semble).

    Mes derniers tests :
    - Insert et Update à partir du site marche bien (enregistrement en base) par contre il est incapable de m'afficher le champ entier si il y a un accent dans la valeur.
    - J'ai modifié les entêtes des templates html en UTF-8 et UTF8 manuellement mais rien n'y fait
    - J'ai modifié toute les bases/tables/champs en latin1 puis en UTF8, toujours aucun changement
    - Remodifié les conf d'apache et php en différents encodages mais rien n'y fait.

    Au final le seul soucis que l'on remarque est lors de la génération des pages HTML à partir du php, il n'arrive pas à écrire les champs qui ont un accent. Je regarde le code d'un peut plus près voir si il y a quelque chose de curieux...

    C'est très tordu...

  8. #8
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 28
    Par défaut
    Trouvé \o/

    Aucune erreur de configuration ou d'encodage...

    Il s'agit d'une merde du code généré. Pour ceux qui tomberont dessus :

    Dans les fonctions de base de données (Common.php))
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    //CCToHTML @0-93F44B0D
    function CCToHTML($Value)
    {
       //Orginal
       //return htmlspecialchars($Value);
     
       //modification pour corriger problème d'accent
       return htmlspecialchars($Value,ENT_COMPAT | ENT_HTML401,'ISO-8859-1');
     
    }
    Merci tout de même à ceux qui ont cherché !!

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

Discussions similaires

  1. [FPDF] Caractères accentués depuis MySQL
    Par jeje63 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 14/01/2010, 08h58
  2. [MySQL] Caractères accentués dans base de données MySQL
    Par enfin dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 11/01/2007, 20h54
  3. [MySQL] Export de mysql 4.1 puis import sur mysql 4.0 : les caractères accentués ne passent p
    Par Kiyomizu dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 25/04/2006, 08h36
  4. Problème d'INSERT avec caractères accentués: mysql 5.0
    Par yizashi dans le forum Installation
    Réponses: 2
    Dernier message: 05/04/2006, 10h26
  5. caractères accentués en mysql 4.1.15
    Par lucdeg dans le forum Administration
    Réponses: 2
    Dernier message: 07/12/2005, 19h04

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