{MySQL} exporter en utf-8 avec SELECT OUTFILE
Résolu
eponyo
Messages postés
1
Date d'inscription
Statut
Membre
Dernière intervention
-
eponyo -
eponyo -
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.
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:
- {MySQL} exporter en utf-8 avec SELECT OUTFILE
- Clé windows 8 - Guide
- Exporter favoris chrome - Guide
- Mixcraft 8 - Télécharger - Création musicale
- Exporter conversation sms android - Guide
- Exporter favoris firefox - Guide
2 réponses
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.
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.