souci encodage UTF-8

Eléphant du PHP | 248 Messages

17 mai 2011, 10:46

Bonjour,
je sollicite votre aide car je me retrouve face à un problème que je n'arrive pas à résoudre.

J'ai une base de données qui contient les différentes régions de France .

Cette base est en utf8_unicode_ci la page qui affiche ces données est en utf8 aussi au niveau affichage je n'ai pas de souci. Par contre quand je vais voir dans ma base MySQL dans phpmyadmin j'ai des caractères bizarres

par exemple pour Provence-Alpes-Côte d'Azur je me retrouve avec Provence-Alpes-Côte d'Azur et lorsque j'effectue une recherche pour retrouver Provence-Alpes-Côte d'Azur rien ne s'affiche

Avez vous une solution?

Merci d'avance

Eléphant du PHP | 275 Messages

17 mai 2011, 11:01

Ta page phpmyadmin, elle s'affiche en quel charset ?
Et quel est le charset de connection entre php et mysql ? (ca doit se voir dans "Server variables" dans phpmyadmin)

Eléphant du PHP | 248 Messages

17 mai 2011, 11:07

Bonjour,
merci pour ta réponse
ma page phpmyadmin est bien en UTF-8

et pour le charset ci-dessous:
character set connection utf8

J'ai fais un test avec wordpress, les caractères restent normau

Dès que j'insère des données depuis l'onglet insérer de PHPmyadmin ca s'affichent bien dans phpmyadmin mais pas dans ma page ca fais des ?

mais dès que ca vient de ma page ca merde ca s'affichent bien dans ma page mais dans PHPmyadmin catastrophe

Eléphant du PHP | 275 Messages

17 mai 2011, 11:17

Ton wordpress insère de la merde en base, alors.

A priori, il est en utf-8 mais son charset de connection est a latin 1.
Donc il envoie de l'utf8 a mysql qui pense que c'est du latin1, et l'encode en utf-8 pour l'insérer en base (puisque la base est utf-8). les données sont donc en double utf-8.

Dans l'autre sens
* les données en double utf-8 son converties vers le tain1 pour être envoyées a wordpress, donc passent en utf-8, et sont correctement affichées.
* quand les données sont insérées via phpmyadmin qui, lui, semble bien configuré, les données sont bien en utf-8, donc quand wordpress les recupere, elles sont converties d'utf-8 vers latin1, donc t'as des "?".


En gros, le problème, c'est fort probablement le charset de connexion de ton wordpress.

SET NAMES utf8;

Eléphant du PHP | 248 Messages

17 mai 2011, 11:17

Ca y est j'ai trouvé. Pour qui ca peut aider

après la connexion à la base

mysql_query("SET NAMES 'utf8'");

Eléphant du PHP | 248 Messages

17 mai 2011, 11:18

merci popy pour ton aide super ca fonctionne