Problème d'accents

Résolu/Fermé
troubadour2 Messages postés 277 Date d'inscription vendredi 11 juin 2010 Statut Membre Dernière intervention 19 juin 2016 - 29 juin 2011 à 11:35
Toine78 Messages postés 18 Date d'inscription mardi 31 août 2010 Statut Membre Dernière intervention 27 août 2011 - 30 juin 2011 à 11:03
Bonjour,

Sur mon site à partir du moment où j'ai un caractère accentué aucune autre lettre ne s'affiche.
Dans ma BDD les caractères sont affiché correctement.
Si je prends l'exemple "Régine" dans ma BDD c'est exactement pareil et dans l'affichage de mon tableau et sur tous les navigateurs ça m'affiche que le R.....

Je n'ai jamais rencontré un problème pareil.
Pouvez vous me dire ce que vous en pensez.
Je vous remercie


8 réponses

Toine78 Messages postés 18 Date d'inscription mardi 31 août 2010 Statut Membre Dernière intervention 27 août 2011 3
30 juin 2011 à 11:03
ca me semble être un peu une usine à gaz...

Tu as essayé plus simple : les fonctions utf8_decode () pour lire une données de ta base et utf8_encode() pour y enregistrer un nouvel élément.
1
Toine78 Messages postés 18 Date d'inscription mardi 31 août 2010 Statut Membre Dernière intervention 27 août 2011 3
29 juin 2011 à 11:56
Avant toute chose, est-ce que ta page web et tes tables en BDD ont le même encodage (UTF8 ou autre).

Si oui as tu un exemple à montrer ?
0
troubadour2 Messages postés 277 Date d'inscription vendredi 11 juin 2010 Statut Membre Dernière intervention 19 juin 2016 1
29 juin 2011 à 13:24
Bonjour

oui l'encodage de ma BDD c'est utf8 j'ai regarder c'est Mysql

et dans mon fichier j'ai
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

mon éditeur PHP c'est Notepad++ il est en UTF8 sans BOOM

et mon navigateur idem

Merci
0
Toine78 Messages postés 18 Date d'inscription mardi 31 août 2010 Statut Membre Dernière intervention 27 août 2011 3
29 juin 2011 à 13:46
As tu regarder au niveau de l'encodage de ta table en BDD, là aussi il peut y avoir une différence.

si ce n'est pas le cas, poste moi un petit exemple je vais regarder
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
troubadour2 Messages postés 277 Date d'inscription vendredi 11 juin 2010 Statut Membre Dernière intervention 19 juin 2016 1
29 juin 2011 à 16:02
Bonjour

C'est quoi comme exemple que tu veux en fait ?
0
troubadour2 Messages postés 277 Date d'inscription vendredi 11 juin 2010 Statut Membre Dernière intervention 19 juin 2016 1
29 juin 2011 à 16:04
c'est re-moi


en fait je viens de m'apercevoir que ma BDD est en UTF8 mais mes tables ne sont pas en utf8

que dois je faire?

Merci
0
Toine78 Messages postés 18 Date d'inscription mardi 31 août 2010 Statut Membre Dernière intervention 27 août 2011 3
29 juin 2011 à 16:27
Voila le problème :)

Il faut simplement depuis phpmyadmin (ou un autre système de gestion de BDD Mysql) aller sur ta table et changer son encodage.

Pour ce faire avec phpmyadmin, tu ouvre ta BDD, tu sélectionnes ta table et tu cliques sur l'onglet "Opérations", là tu verras une combobox permettant de changer l'encodage.
0
troubadour2 Messages postés 277 Date d'inscription vendredi 11 juin 2010 Statut Membre Dernière intervention 19 juin 2016 1
30 juin 2011 à 09:56
Bonjour

En fait je ne peux pas toucher la BDD car c'est une entreprise et elles est trop importante.
Alors il faut que j'essaie de convertir un array en UTF8 via un script j'en ai trouvé un mais j'ai du mal pour qu'il fonctionne.
Si tu connait
Merci

function toUTF8($param)
{
    if(is_array($param)) {
        array_walk_recursive($param, create_function('&$item, $index', '$item = toUTF8($item);'));
        return $param;
    }
 
    mb_detect_order('UTF-8, ISO-8859-15, ISO-8859-1, Windows-1252');
    //parfois si le dernier caractère de la chaine est accentué, la conversion peut foirer,
    //donc on force avec un caractère qui ne l'est pas.
    //(astuce trouvée sur les commentaires de la doc sur php.net)
    $param .= '_';
    $currentCharset = mb_detect_encoding($param);
 
    if ($currentCharset != 'UTF-8') {
        $param = mb_convert_encoding($param, 'UTF-8', $currentCharset);
    }
 
    return substr($param, 0, strlen($param)-1);
}
0