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

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
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 :

Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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.