par
aph4x » 21 août 2008, 14:05
Bonjour à tous,
Voila je pose une simple question qui m'est venue suite à un problème que je rencontre depuis que j'utilise le module PDO de php5 pour développer un site internet.
Je vous explique rapidement :
J'ai définit le charset comme suit pour mes données html :
Code : Tout sélectionner
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Ma base sql (mysql 5.0.27, PHP 5.2.0) fonctionne totalement en ut8_bin, lorsque j'insère des données dans la base je prend bien soin d'appliquer les requêtes
, et/ou
, mais rien n'y fait, lorsque je sélectionne mes données pour les affichées, les caractères spéciaux sont corrompus.
Je me suis renseigné et la forme que prennent les caractères indique que les caractères sont encodés en ISO-8859-1 et alors que le navigateur tente de les encoder en utf-8, seulement je ne vois nulle part ou j'ai pu laisser un tel comportement par défaut, d'où ma question,
PDO gère t-il à sa manière l'encodage des caractères en interne ?
Structure d'une table ou le problème est présent :
Code : Tout sélectionner
CREATE TABLE `models` (
`id` tinyint(4) NOT NULL auto_increment,
`name` varchar(80) collate utf8_bin NOT NULL default 'Un modèle',
`photo` varchar(255) collate utf8_bin NOT NULL default 'model-sample.jpg',
`desc` text collate utf8_bin NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=11 ;
Merci pour votre aide.
Bonjour à tous,
Voila je pose une simple question qui m'est venue suite à un problème que je rencontre depuis que j'utilise le module PDO de php5 pour développer un site internet.
Je vous explique rapidement :
J'ai définit le charset comme suit pour mes données html :
[code]<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />[/code]
Ma base sql (mysql 5.0.27, PHP 5.2.0) fonctionne totalement en ut8_bin, lorsque j'insère des données dans la base je prend bien soin d'appliquer les requêtes [code]SET NAMES 'utf8'[/code], et/ou [code]SET CHARACTER SET utf8[/code], mais rien n'y fait, lorsque je sélectionne mes données pour les affichées, les caractères spéciaux sont corrompus.
[code]� au lieu de è[/code]
Je me suis renseigné et la forme que prennent les caractères indique que les caractères sont encodés en ISO-8859-1 et alors que le navigateur tente de les encoder en utf-8, seulement je ne vois nulle part ou j'ai pu laisser un tel comportement par défaut, d'où ma question, [b]PDO gère t-il à sa manière l'encodage des caractères en interne ?[/b]
Structure d'une table ou le problème est présent :
[code]CREATE TABLE `models` (
`id` tinyint(4) NOT NULL auto_increment,
`name` varchar(80) collate utf8_bin NOT NULL default 'Un modèle',
`photo` varchar(255) collate utf8_bin NOT NULL default 'model-sample.jpg',
`desc` text collate utf8_bin NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=11 ; [/code]
Merci pour votre aide.