Page 1 sur 1

Encodage 'é' devient ','

Posté : 20 sept. 2010, 18:29
par gédéon
Bonjour à tous, j'ai un problème avec mes caractères spéciaux.
Mais ici, pas question d'utf8, et on ne retrouve pas le é spécifique.

version de mysql : 5.1
version de php : 5.2.13

la base :
CREATE TABLE test (
id INT(11)  not null auto_increment,
description TEXT not null,
PRIMARY KEY (id)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;


insert into test ( id, description )
values ( 1, 'tétàtôtètù');
le code :
$db = mysql_connect($dbHote, $dbUser, $dbPass);
$sel = mysql_select_db($dbName); 

$result = mysql_query("select * from test;");

while ($row = mysql_fetch_assoc($result)) {
    print_r($row);
}

// affiche :  Array ( [id] => 1 [description] => t‚t…t“tŠt— )
l'encodage de la page est en charset=iso-8859-1, idem pour le php.

J'ai essayé de tout mettre en utf8, ca marche, mais le client insiste pour avoir sa base en iso-8859-1. Je ne trouve rien sur le web avec un é qui devient une virgule. Les données s'affiche correctement sur la console MySQL.

Ma base est bien en latin1

Code : Tout sélectionner

mysql> SELECT * -> FROM INFORMATION_SCHEMA.SCHEMATA -> WHERE SCHEMA_NAME = 'labase'; +--------------+-------------+----------------------------+------------------------+----------+ | CATALOG_NAME | SCHEMA_NAME | DEFAULT_CHARACTER_SET_NAME | DEFAULT_COLLATION_NAME | SQL_PATH | +--------------+-------------+----------------------------+------------------------+----------+ | NULL | labase | latin1 | latin1_swedish_ci | NULL | +--------------+-------------+----------------------------+------------------------+----------+ 1 row in set (0.00 sec)
Auriez vous de nouvelles pistes ?

Je vous remercie d'avance.

Re: Encodage 'é' devient ','

Posté : 21 sept. 2010, 14:05
par gédéon
Voilà la solution si d'avenir le problème vous arrivez.

Les commandes SQL ont été saisies à la volé sur la console MySQL et ne passaient pas par les mécanismes d'encodage classique dont dispose MySQL. On était bien en présence d'une base dont à l'origine les données étaient corrompues.