PHP ou Mysql : problèmes d'encodage (accents)

PHP ou Mysql : problèmes d'encodage (accents) - SQL/NoSQL - Programmation

Marsh Posté le 10-06-2009 à 16:16:52    

Bonjour,
 
je me cogne à un gros souci actuellement entre PHP et MySQL, et je n'arrive vraiment pas à trouver la source du problème.
 
Je developpe un projet avec Zend Framework.
 
Toutes les données que j'insère en base ont les accents qui s'affichent mal (je le vois via PhpMyAdmin).
J'ai bien précisé le charset en méta :
 

Code :
  1. <meta content="text/html;charset=utf-8" http-equiv="Content-Type"/>


Ma base de données a l'interclassement par défaut :
 
 
 

Code :
  1. utf8_general_ci


 
 
et toutes mes tables ont cet interclassement.
 
Donc je ne vois pas ce qui peut causer ce problème...
 
Pour tester, j'ai appliqué la fonction utf8_decode($champs) sur les données avant les insertions... et là ça marche, les caractères s'affichent bien. Comme utf8_decode convertit les utf-8 en ISO, je me dis qu'il y a quelquechose qui cloche sur ma base MySQL.
 
edit: détail supplémentaire, même quand je passe un champs en latin1_swedish_ci, ça ne prends pas
Par exemple : Bérichon => Bérichon
 
Alors je comprends plus rien...
 
Merci d'avance pour votre aide.


Message édité par -tinost@r- le 10-06-2009 à 16:17:10
Reply

Marsh Posté le 10-06-2009 à 16:16:52   

Reply

Marsh Posté le 10-06-2009 à 18:27:33    

Avant chaque requête, il faut spécifier à MySQL qu'on communique en UTF-8 avec lui. Avec la requête suivante :
 

Code :
  1. SET NAMES 'utf8'

Reply

Marsh Posté le 26-08-2011 à 11:59:31    

ou juste après la première connexion à la base des données comme suite

Code :
  1. function DB_Connection($name_DB) {
  2. $bdd = $name_DB;
  3. mysql_connect(DB_HOST, USER_NAME,PASSE_WORD) or die("<b>Erreur serveur :</b>".mysql_error());
  4. mysql_select_db($bdd) or die("<b>Erreur de base de donnees :</b>".mysql_error());
  5. mysql_query("SET NAMES utf8" );
  6. }

Reply

Marsh Posté le 29-08-2011 à 12:05:31    

Ca peut se régler dans le fichier de conf de mysql aussi ;)
 
Regarde dans la doc des variables qui sont relatives au charset (tant pour la connexion que pour la collation.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 09-09-2011 à 11:08:56    

ce que tu dois faire c'est utiliser l'interclassement  
utf8_unicode_ci

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed