[utf8] probleme accent mysql

Résolu/Fermé
crazyiop - 16 juil. 2007 à 23:22
 dara - 23 juin 2021 à 12:19
Bonjour,

j'ai un probleme d'accent ...

j'ai une base de donnée mysql avec :

Jeu de caractères pour MySQL: UTF-8 Unicode (utf8)
Interclassement pour la connection MySQL: utf8_general_ci

dans laquelle il y'a une table avec Interclassement utf8_general_ci
comprenant un champs tinytext utf8_general_ci

le tout est afficher sur une page php avec un charset=utf-8

Mais la page affiche des "?" a la place des ë é è ...

que dois-je changer pour que le tout soit compatible ??

Cordialement, Crazyiop

40 réponses

des fois le problème de l'encodage en UTF8 se pose lorsqu'on encode la chaine à plusieurs reprises au même endroit, appliquer par exemple un utf8_decode("chaine de caractère") tout en utilisant un mysql_query("SET NAMES UTF8") ne résoudra pas le problème mais bien au contraire il peut le créer, ce qu'il faut retenir pour coder en UTF8 c'est qu'il faut:

-insérer la balise meta:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
cela définit l'encodage du navigateur par défaut.
sinon utiliser des utf8_decode() au cas ou en l'appelle avec un autre encodage en cas besoin.

-vérifier l'interclassement de la base de données, des tables, et des champs text et varchars en utf8_general_ci.

- définir mysql_query("SET NAMES UTF8") sur la chaine de connexion
55
Merci !
0
Merci,
en appliquant <charset="ISO-8859-1> au niveau du HTML et utf8_general_ci dans le champs MySQL, ça fonctionne bien merci encore.
0
merci
0
merci!
0
j'ai fait mysql_query("SET NAMES UTF8") dans l'un de mes autres sites et ca fonctionnais parfaitement pour les accents malheureseument je le fait dans un autre site, et là plus rien ne s'affiche...
J'ai bien tout mis en utf8 mais j'ai les ? qui s'affiche si je ne met pas mysql_query("SET NAMES UTF8") et si je le met j'ai plus rien du tout...
C'est étrange non ?
Merci si quelqu'un aurait une idée a ce problème !
0
Le problème dans le cas des ? au lieu des accents vient du fait que ton encodage de la page est bien en UTF8 mais les données en latin. Avant de recuperer tes données (apres la connexion mysql) fait un mysql_query("SET NAMES UTF8");

http://blog.ritrattu.com/2007/08/29/convertir-un-site-en-utf8-phpmysql/
20
crazyous Messages postés 61 Date d'inscription mardi 21 octobre 2008 Statut Membre Dernière intervention 31 octobre 2010 86
21 oct. 2008 à 16:24
Bonjour,
Je suis nouveau sur le site, je voulais te remercier et confirmer que ça marche et que tu m'as sauvé la vie, lol! car cela fait 2 semaines que j'essayais de résoudre le problème.
Encore une fois mille fois merci.
0
Merci beaucoup pour la réponse et le lien. Grace à toi je vais pouvoir dormir serein :))
Encore merci.
0
waregunATctrlogicDOTnet
15 avril 2009 à 03:11
I had the same problem when trying to incert accentuated character in my database from windows command, but when I inserted from website query, problem was solved.
Don't know exactly why, but thought it would be a good idea to tell it here
0
waregunATctrlogicDOTnet
15 avril 2009 à 03:18
Oups! une habitude de répondre en anglais dsl...

Ouais bon voilà, je me suis rendu compte que j'avais également un problème avec les charactères contenant des accents dans mes entrées/sorties de MySQL.

Je me suis rendu compte que mon problème venait du fait que j'entrait les texte par l'interprèteur de commande Windows... Je n'ai pas vraiment réglé le problème, mais parcontre en entrant mes données directement à partir du web le problème avait disparu...
J'ai cru qu'il pouvait être bon de le mentionner...

Quelqu'un en connait la raison et comment on pourrait éviter le problème en entrant les données par l'interprèteur de commande Windows?
0
j'atteste, cela fonctionne !!!

// identification et connexion à la base de données
require_once("connect.inc.php");
mysql_query("SET NAMES UTF8");
// recuperation des saisies du formulaire
$nom= $_POST['nom'];

un grand merci
0
Utilisateur anonyme
17 déc. 2011 à 14:22
Bon je sais que ce sujet date de longtemps mais vue que j'étais passé par ici parce que j'en avais besoin je me suis dit que d'autre auront besoin de la solution que j'ai trouvé..
Il faut tout simplement modifier le charset > <meta charset="ISO-8859-1">
16
maka54 Messages postés 699 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 80
17 déc. 2011 à 14:30
le sujet est vieux en effet, et vaut mieux ne pas répondre si c'est pour induire les gens en erreur

et il ne faut absolument pas mettre <meta charset="ISO-8859-1"> comme tu le dis
0
Utilisateur anonyme
17 déc. 2011 à 15:15
Ah bon pourquoi ?
0
maka54 Messages postés 699 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 80
17 déc. 2011 à 15:31
si tu décides de faire un site en utf8, tu le fais de A à Z

tout d'abord labase de données créée en utf8
utf8_unicode_ci (interclassement utf8_unicode_ci)

on ajoute la ligne mysql_query("SET NAMES UTF8"); après la connexion à la base

les pages du site codé en utf8 sans bom (à cause des caractères invisibles qui créent des erreurs)

le meta dans le head sera en utf8 : <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" >

le charset au niveau du serveur en utf8
pour cela on crée un fichier .htaccess et on place le code suivant :
AddDefaultCharset UTF-8

Avec tout çà, il n'y aura aucun souci d'accent, de caractères bizarres ni sur vos pages ni dans la base de données
0
titou80 Messages postés 1 Date d'inscription mardi 6 janvier 2015 Statut Membre Dernière intervention 6 janvier 2015 > maka54 Messages postés 699 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016
6 janv. 2015 à 11:09
Enorme !! Un grand merci ...
Ta réponse est toujours d'actualité même en 2015 !!
0
mustapha java
14 juin 2012 à 12:34
ou en va placer le fichier .htacces ?dans le repertoire de mysql
0
MMMMerci tu me sauves la vie !!!! encore Merci pour cette info existentielle ;-)
2

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

Posez votre question
Merci beaucoup !!
1
SVp j'ai le mm pb les caractéres spéciaux des données issues de la bd Mysql sont decodés et ça marche pas avec mysql_query("SET NAMES UTF8");
0
Merci beaucoup pour la solution, je cherche depuis des heures, mille mercis!!!
1
Comme les autres : thanks a lot!
Tu viens de résoudre ce problème qui me fatigue depuis plusieurs heures.
0
misam Messages postés 31 Date d'inscription vendredi 8 juin 2007 Statut Membre Dernière intervention 25 juin 2009 2
24 juin 2009 à 12:17
Francescu bravo tu m'as sorti d'une prise de tête qui m'a pris 2h!!!! ^^
Reponse claire nette et précise
PARFAIT!!
1
Utilisateur anonyme
18 août 2009 à 17:15
Merci mon frère, ça marche

1
MERCI T'ES UN AS
14 nov. 2009 à 23:32
MERCI FRANCHEMENT T'ES UN AS
1
Tout à fait d'accord, je viens juste de tomber sur cette solution qui m'a permis de corriger mon problème de caractères accentués, hormis que mon souci était de rester en latin1. Donc merci !
1
Merciiiii
1
Merci iedidia ça m'a bien été utile !
1
Bonjour,

j'ai le même problème d'accent exactement, mais je bosse avec PDO.
Quelqu'un aurait-t-il la solution pour ce cas de figure ?

J'ai pas mal cherché mais j'ai rien trouvé de similaire...
1
$bdd = new PDO ...
$bdd->exec('SET NAMES utf8');
1
Merci Euloiix, merci Mattiews,
car j'avais le même problème et cherchais la solution pour PDO.
0
C'est nikel, ça marche du feu de dieu
0
Merci beaucoup Mattiews, ça marche nikel !
0
Pour info, pour ceux qui cherchent encore, en PDO il faut juste faire ça :

$db = new PDO($dsn, $login, $passwd, array(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true));
$db->query("SET NAMES 'utf8'");
0
ha oui j'ai oublié, un truc troublant, c'est que dans l'interface de phpmyadmin, il n'y a aucun probleme ...
0
thanks thanks thanks de Canada
0
Bonjour,

J'ai exactement le même problème mais je ne comprends pas la solution.

merci
sophie
0
bg62 Messages postés 23361 Date d'inscription samedi 22 octobre 2005 Statut Modérateur Dernière intervention 2 octobre 2022 2 323
26 août 2008 à 11:26
bonjour
il n'est pas obligatoire d'être inscrit ...
mais savoir à qui l'on répond sur le forum est toujours plus agréable pour les gens qui veulent aider !
alors ...inscrivez-vous
merci
b g
0
Je vais m'inscrire et reviens vous voir

sophie
0
Merci ça m'a bien été utile !
0
Super, ca marche!
Merci beaucoup :-)
0