IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Prise en compte des accents lors de l'export CSV depuis la BDD


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Cyberdocumentaliste
    Inscrit en
    Janvier 2014
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Cyberdocumentaliste
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2014
    Messages : 160
    Par défaut Prise en compte des accents lors de l'export CSV depuis la BDD
    Bonjour à tous,

    J'ai ce problème d'accents qui me gène tout le temps, j'ai cherché j'ai essayé trop de trucs mais toujours le même prob.

    Voila mon petit 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
    <?php
    	include ('connexion/connexion.php');
    	header("Content-type: application/vnd.ms-excel; charset=UTF-16LE");
    	header("Content-Transfer-Encoding: text/csv\n"); 
    	header("Content-Disposition: attachment; filename=Export_". date("Y-m-d-h:m:s").".csv");
    	header("Pragma: no-cache");
    	header("Expires: 0");
     
    	$dt=$_REQUEST['dt'];
    	$tp=$_REQUEST['tp'];
     
        $show=$conn->query("SELECT `COLUMN_NAME` FROM `INFORMATION_SCHEMA`.`COLUMNS` WHERE `TABLE_NAME`='$tp' ");
        $i = 0;
        $csv_output="";
    	if (mysqli_num_rows($show) > 0)
    	{
    		while ($row = mysqli_fetch_array($show))
    		{
    			$csv_output .=$row[0].";";
    			$i++;
    		}
    	}
     
     
     
    	$csv_output .= "\n";
     
    	$sql =$conn->query("SELECT * FROM `$tp` WHERE `date_import` LIKE '$dt%'");
       while ($rowr = mysqli_fetch_row($sql))
    	{
    		for ($j=0;$j<$i;$j++)
    		{
    			$csv_output .= $rowr[$j].";";
    		}
     
    		$csv_output .= "\n";
    	}
     
    	echo chr(255).chr(254).mb_convert_encoding( $csv_output, 'UTF-16LE', 'UTF-8');
     
     
        mysqli_close($conn);
     
    ?>
    J'ai essayé htmlspecialchars_decode($csv_output); et bien d'autres fonction et le résultat ça se varie entre les symboles chinois où les ??? ou bien le vide

    Merci d'avence

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Pourquoi tu mets un header UTF-16LE ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Homme Profil pro
    Cyberdocumentaliste
    Inscrit en
    Janvier 2014
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Cyberdocumentaliste
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2014
    Messages : 160
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Pourquoi tu mets un header UTF-16LE ?
    Avant je mettais que header("Content-type: application/vnd.ms-excel;") et $csv_output = htmlspecialchars_decode($csv_output);

    Le résultat c'était chaque mot contient des accents ça apparaît vide dans la cellule.

    Alors la dernière solution c'était le code que j'ai mis, au mois maintenant ça m'affiche des ??? ex: "R?f?rence"

  4. #4
    Modérateur
    Avatar de Vil'Coyote
    Homme Profil pro
    Développeur adélia & Web
    Inscrit en
    Février 2008
    Messages
    4 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur adélia & Web
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 4 583
    Par défaut
    donc du coup avec un UTF-8, ça marcherais pas mieux? sinon l'encodage de la BDD c'est du quoi ?
    la vie n'est pas cirrhose des foies ...

    Avant de poster un message Rechercher n'est pas qu'une option.
    FAQ Web - Tuto Web

  5. #5
    Membre confirmé
    Homme Profil pro
    Cyberdocumentaliste
    Inscrit en
    Janvier 2014
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Cyberdocumentaliste
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2014
    Messages : 160
    Par défaut
    Citation Envoyé par Vil'Coyote Voir le message
    donc du coup avec un UTF-8, ça marcherais pas mieux? sinon l'encodage de la BDD c'est du quoi ?
    Avec UTF-8 ça donne du vide.

    de la BDD c'est du latin1_swedish_ci . et les données dedans sont écrites comme il faut.

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    latin1_swedish_ci c'est l'interclassement, pas l'encodage des données.

    Avec quoi lis-tu le CSV ensuite ? Excel par excel n'ouvre pas les fichiers en UTF8 par défaut, donc ce n'est pas le bon encodage si tu utilises ce tableur.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Prise en compte des accents en Français
    Par rexxer dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 04/08/2010, 19h22
  2. pas de prise en compte des accents
    Par paolo2002 dans le forum Word
    Réponses: 1
    Dernier message: 24/06/2008, 18h12
  3. prise en compte des accents dans mes variables
    Par paolo2002 dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 29/02/2008, 18h17
  4. Pb de prise en compte des accents dans jdk1.5
    Par NizarK dans le forum Langage
    Réponses: 3
    Dernier message: 23/03/2007, 16h10
  5. [MS-DOS] Prise en compte des accents
    Par Furius dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 15/11/2005, 14h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo