Page 1 sur 1

encoder une base de donnée en utf8

Posté : 23 août 2008, 18:00
par seïna
Bonjour,
Je fais un site et j'ai besoin de l'utf-8 (j'utilise Mysql avec PDO) donc j'ai mis toutes mes pages avec le doctype ci dessous

Code : Tout sélectionner

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
Quand j'ai fait ma base de données j'ai mis la base et toutes les tables en utf8 :

Code : Tout sélectionner

CREATE DATABASE nomdelabase DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Code : Tout sélectionner

ENGINE = innodb CHARACTER SET utf8 COLLATE utf8_unicode_ci;
Et malgré tout ça, quand je rentre des accents dans les formulaires : ça foire !
Quand je vais dans phpMyadmin les caractères sont transformés.
ex : Les îles de Barnabé pour : les îles de Barnabé
ça devrait marcher pour : ça devrait marcher.
Il me semblait avoir suivi toutes les recommandations que j'avais trouvées sur le web mais j'ai dû oublier quelque chose.
Merci d'avance

Posté : 23 août 2008, 19:24
par Cyrano
As-tu indiqué l'encodage dans l'en-tête de tes pages HTML ? :-*

Posté : 23 août 2008, 19:57
par seïna
Oui dans le doctype si c'est ça que tu veux dire.
On m'a conseillé autre chose que je viens d'essayer et qui marche : :P
$connexion->query('SET NAMES utf8');
Je l'ai mis après l'instanciation de mon objet connexion.
Mais je ne comprends pas pourquoi j'ai besoin de faire ça alors que je pensais avoir précisé que toute la chaîne était en utf8.
Et il n'y a pas moyen de faire un truc une bonne fois pour toutes? J'aimerais ne pas avoir besoin de mettre cette ligne après chaque ouverture de connexion, ça doit être possible quand même. :-k

Re: encoder une base de donnée en utf8

Posté : 24 août 2008, 00:35
par Victor BRITO
avec le doctype ci dessous

Code : Tout sélectionner

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
Ce n'est pas un doctype, mais une balise meta renseignant une métadonnée. Pour info, un doctype ressemble à ça pour la syntaxe et à ça pour le HTML et le XHTML.

Posté : 25 août 2008, 00:30
par Invité
Ah je me suis mal exprimée. Je voulais dire dans la balise méta.
Mais sinon pas d'idée sur une autre manière de procéder??
:-s

Posté : 25 août 2008, 12:18
par AB
Oui dans le doctype si c'est ça que tu veux dire.
On m'a conseillé autre chose que je viens d'essayer et qui marche : :P
$connexion->query('SET NAMES utf8');
Je l'ai mis après l'instanciation de mon objet connexion.
Mais je ne comprends pas pourquoi j'ai besoin de faire ça alors que je pensais avoir précisé que toute la chaîne était en utf8.
Et il n'y a pas moyen de faire un truc une bonne fois pour toutes? J'aimerais ne pas avoir besoin de mettre cette ligne après chaque ouverture de connexion, ça doit être possible quand même. :-k
Mysql travaille par défaut en iso ISO-8859-1. Pour pouvoir enlever cette ligne il faudrait que tu puisse configurer les réglages par défaut de mysql en utf8.

Posté : 01 sept. 2008, 11:49
par seïna
OK je vois. Ce qui veut dire que ce n'est pas possible chez mon hébergeur je suppose??

Posté : 01 sept. 2008, 13:34
par albat
Probablement pas.
Mais quoi qu'il en soit, cette toute petite requête est toujours bienvenue.

Posté : 03 sept. 2008, 13:16
par seïna
Merci tout le monde. Sujet résolu !!!
ElePHPant