probleme utf-8

Par arcoss 3x, il y a 10 ans


Bonjour j'ai un probleme d'encodage utf-8 sur mon site php j'ai vérifié ma base de donnés elle est bien en utf-8 comme mon default.php savez-vous d'ou viens le probleme ? Merci d'avance !

<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title><?php echo isset($title_for_layout)?$title_for_layout:'EmmyVat'; ?></title> <link rel="stylesheet" href="/emmy/webroot/css/bootstrap.min.css"> </head> <body> <nav class="navbar navbar-inverse navbar-fixed-top" style="position:static"> <div class="container"> <div class="navbar-header"> <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="navbar-brand" href="#">EmmyVat</a> </div> <div id="navbar" class="collapse navbar-collapse"> <ul class="nav navbar-nav"> <?php $pagesMenu = $this->request('Pages','getMenu');?> <?php foreach($pagesMenu as $p): ?> <li><a href="<?php echo BASE_URL.'/pages/view/'.$p->id; ?>" title="<?php echo $p->name; ?>"><?php echo $p->name; ?></a></li> <?php endforeach; ?> <li><a href="<?php echo Router::url('posts/index'); ?>">Actualités</a></li> </ul> </div><!--/.nav-collapse --> </div> </nav> <div class="container" style="padding-top:60px;"> <?php echo $content_for_layout; ?> </div> </body> <script type="text/javascript" src="/emmy/webroot/js/jquery.min.js"></script> </html>

18 réponses

Genki, il y a 10 ans

Les encodages sont chiants

Est-ce que ta page et bien en utf8 ? (non pas le contenu, je parle de la page)
Un exemple de ce que je te dis sous notepad++ : http://www.nosyweb.fr/images/stories/notepad-utf-8.png

De même pour la base de données, peut-être elle est en utf8, mais est-ce que la connexion est les données qui y rentrent le sont également ?

Peux-tu copier le code de la connexion à la bdd.

arcoss 3x, il y a 10 ans

oui tout est en utf-8
default.php :

<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title><?php echo isset($title_for_layout)?$title_for_layout:'EmmyVat'; ?></title> <link rel="stylesheet" href="/emmy/webroot/css/bootstrap.min.css"> </head> <body> <nav class="navbar navbar-inverse navbar-fixed-top" style="position:static"> <div class="container"> <div class="navbar-header"> <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="navbar-brand" href="#">EmmyVat</a> </div> <div id="navbar" class="collapse navbar-collapse"> <ul class="nav navbar-nav"> <?php $pagesMenu = $this->request('Pages','getMenu');?> <?php foreach($pagesMenu as $p): ?> <li><a href="<?php echo BASE_URL.'/pages/view/'.$p->id; ?>" title="<?php echo $p->name; ?>"><?php echo $p->name; ?></a></li> <?php endforeach; ?> <li><a href="<?php echo Router::url('posts/index'); ?>">Actualités</a></li> </ul> </div><!--/.nav-collapse --> </div> </nav> <div class="container" style="padding-top:60px;"> <?php echo $content_for_layout; ?> </div> </body> <script type="text/javascript" src="/emmy/webroot/js/jquery.min.js"></script> </html>

Model .php partie connection a la base de données :

public function __construct(){ // je me conencte à la base if($this->table === false){ $this->table = strtolower(get_class($this)).'s'; } $conf = Conf::$databases[$this->conf]; if(isset(Model::$connections[$this->conf])){ $this->db = Model::$connections[$this->conf]; return true; } try{ $pdo = new PDO( 'mysql:host='.$conf['host'].';dbname='.$conf['database'].';', $conf['login'], $conf['password'], array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8') ); $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_WARNING); Model::$connections[$this->conf] = $pdo; $this->db = $pdo; }catch(PDOException $e){ if(Conf::$debug >= 1){ die($e->getMessage()); }else{ die('Impossible de se connecter à la basse de donnée'); } } //j'initialise quelques variables }
brokleen, il y a 10 ans

Salut, essaie ce doctype :

<!doctype html> <html lang="fr"> <head> <meta charset="utf-8"> </head>

Peux tu copier coller un bout de texte non encodé.

Edit: test les caractères spéciaux en dur, et depuis ta base pour déjà savoir si cela vient de la base ou d'autres choses.

arcoss 3x, il y a 10 ans

maintenant ca marche mais pas quand je suis dans pages/view ... Et quand je fais lire la suite d'un de mes article dans la barre de navigation il ne me met pas les accents ...

brokleen, il y a 10 ans

Edit: test les caractères spéciaux en dur, et depuis ta base pour déjà savoir si cela vient de la base ou d'autres choses.

arcoss 3x, il y a 10 ans

j'ai tapé ca dans ma base : &é"'(-è_çà)=$ù^!:;, et sur mon site il m'a mis ca : &é"'(-è_çà )=$ù^!:;,

arcoss 3x, il y a 10 ans

et en bas de ma page j'ai mis un truc pour voir en combien de temps elle a été générée et les accents ne se mettent pas ... et ca a rien avoir avec ma base ca ...

Alexandre #lbac, il y a 10 ans

elle est encodée comment ta base ? Tes Tables ?

arcoss 3x, il y a 10 ans

en utf8-general_ci

brokleen, il y a 10 ans

Bon ba c'est un problème d'encodage des fichiers, il faut vérifier que tes fichiers soient en utf8 sans bom.

arcoss 3x, il y a 10 ans

comment vérifier ?

brokleen, il y a 10 ans

Tu utilises quel soft ?

arcoss 3x, il y a 10 ans

sublime text 2

arcoss 3x, il y a 10 ans

c bon toutes mes pages sont encodés en utf 8 sans bom mais ca change rien ...

brokleen, il y a 10 ans

Créer un fichier html rentre ca et dis moi si l'encodage fonctionne correctement.

<!doctype html> <html lang="fr"> <head> <meta charset="utf-8"> <title>Titre de la page</title> </head> <body> '"'éè@& </body> </html>
arcoss 3x, il y a 10 ans

je n arrive pas a l ouvrir par l intermedire de mon serveur ...

arcoss 3x, il y a 10 ans

c bon j ai trouver le probleme c etait dans mon router.php avec le catcher ...