Bonjour,
j'ai un problème d'encodage des accents (apparemment) lors de la création d'un csv.
Dans ma DB j'ai par exemple "Maîtrise" et "Maise " sur le csv.
Merci d'avance de votre aide
Voici mon code
Code : 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
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56 $dbtable=null; include("inc/conf.inc.php"); if (isset($_GET['table']) && $_GET['table'] != "") $dbtable=$_GET['table']; if ($dbtable == "tb_donnees_gpec_grid") $where="WHERE agent='".$_GET['agent']."'"; else $where=""; function decode_entities($text) { $text= html_entity_decode($text,ENT_QUOTES,"UTF-8"); #NOTE: UTF-8 does not work! $text= preg_replace('/&#(\d+);/me',"chr(\\1)",$text); #decimal notation $text= preg_replace('/&#x([a-f0-9]+);/mei',"chr(0x\\1)",$text); #hex notation return $text; } // Connexion à la base de données $connexion = new mysqli($hostname, $username, $password, $database) or die ("Connexion Impossible"); //Requete SQL $query = "SELECT * FROM ".$dbtable." ".$where.""; $result = $connexion->query($query); header("Content-type: application/vnd.ms-excel"); header("Content-Disposition: attachment; filename=".$dbtable."-".date('Ymd-H:i:s').".csv"); $data=""; $case=""; // Entêtes des colones dans le fichier Excel $data=$result->fetch_fields();fields foreach ($data as $val) { printf($val->name." ;"); } print("\n"); //Les resultats de la requette $i=0; while($row = $result->fetch_row()) { $excel = ''; for($j=0; $j < $result->field_count; $j++) { if(!isset($row[$j])) $excel .= "NULL ;"; else $excel .= "$row[$j] ;"; } $excel = preg_replace("/\r\n|\n\r|\n|\r/", ' ', $excel); print(trim(decode_entities($excel)))."\t\n"; } print("\n"); exit;
Partager