{MySQL} exporter en utf-8 avec SELECT OUTFILE

Résolu/Fermé
eponyo Messages postés 1 Date d'inscription vendredi 31 juillet 2009 Statut Membre Dernière intervention 31 juillet 2009 - 31 juil. 2009 à 19:16
 eponyo - 3 août 2009 à 08:27
Bonjour,

J'ai une table dont le charset est en utf-8 :

create table index(
id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
nom VARCHAR(255) NOT NULL,
)DEFAULT CHARACTER SET=utf8;


Lorsque que je veux l'exporter depuis PHP, j'utilise le code suivant :

mysql_query("set names 'utf8'");
$var = mysql_query('show variables');
while ($res = mysql_fetch_row ($var)){
echo ("<p>$res[0] : $res[1]</p>");
}

// ceci affiche (entre autres) :
// character_set_client : utf8
// character_set_connection : utf8
// character_set_database : latin1
// character_set_filesystem : binary
// character_set_results : utf8
// character_set_server : latin1
// character_set_system : utf8
// character_sets_dir : /usr/share/mysql/charsets/
// collation_connection : utf8_general_ci
// collation_database : latin1_swedish_ci
// collation_server : latin1_swedish_ci

mysql_query('SELECT * FROM index INTO OUTFILE '/tmp/index.txt');

Mon problème est que les accents s'affichent mal dans le fichier index.txt, par exemple :
22 édition

Pourtant, le fichier 'index.txt' est bien en utf-8 (d'après la commande 'file');
Lorsque je consulte la base de données depuis le terminal (affichage en utf-8) tout s'affiche bien..

J'ai consulté la doc de SELECT ... OUTFILE mais je n'arrive pas à voir d'où vient le problème. Est-que quelqu'un aurait une idée ?

Merci.
A voir également:

2 réponses

imw Messages postés 233 Date d'inscription vendredi 17 juillet 2009 Statut Membre Dernière intervention 8 septembre 2011 42
1 août 2009 à 11:17
A priori, la base est en latin1 ... essaye de la passer en utf8 ...

pour ce qui est de la commande file, je ne sais pas trop comment elle détermine l'encodage du fichier.

Je ne sais pas quelle utilisation du espère faire du outfile mysql, mais perso, je n'ai jamais réussi à faire ce que je voulais, je me suis fait mes propres scripts d'export.
0
Bonjour et merci pour la réponse.

En fait, dans les requêtes précédentes, lorsque je remplissais la base de données ou lorsque j'allais y chercher des infos, je n'utilisais pas la commande SET NAMES .... :-/
Problème résolu :)
0