Données importé dans BDD incomplete

Résolu
ekivox13 Messages postés 77 Statut Membre -  
ekivox13 Messages postés 77 Statut Membre -
Bonjour,

J'ai un fichier csv que je tente d'importer dans une BDD mysql. Dans l'une de ces colonnes, j'ai du HTML. Le problème est qu'il est importé de façon incomplète, et que tous les accents ne s'affiche pas.
Si je modifie la valeur directement depuis phpmyadmin, je peux sans problème ajouter la cellule complète.

J'ai mis la colonne en "TEXT"

Interclassement en utf8_general_ci

Ma page php qui appel la bdd est en UTF8 sans bom.

Une idée ?

Merci par avance pour votre aide.

5 réponses

  1. Utilisateur anonyme
     
    Bonjour

    C'est très probablement que ton fichier csv, lui, n'est pas en utf-8.
    Essayes-tu de faire ton importation csv à partir de phpmyadmin, ou d'un script php ?
    0
    1. ekivox13 Messages postés 77 Statut Membre 14
       
      Merci pour ta réponse,

      j'exporte le fichier csv depuis excel en .csv avec séparateur à virgule.

      Et je l'importe depuis phpmyadmin.
      0
  2. Utilisateur anonyme
     
    Au moment de l'importation dans phpmyadmin, pour le fichier à importer, choisis latin1 pour le "jeu de caractères du fichier :".
    0
    1. ekivox13 Messages postés 77 Statut Membre 14
       
      Je n'ai pas latin dans le menu déroulant
      0
    2. ekivox13 Messages postés 77 Statut Membre 14
       
      Par contre je l'ai sur la structure de la colonne.. mais pas lors de l'import..

      Et si je fais ça, mon texte est importé en entier.. Mais d'autres caractères s'affichent à la place des accents.. Avant c'était des losanges, maintenant c'est des "?"
      0
  3. Utilisateur anonyme
     
    Je n'ai pas écrit latin mais latin1.
    Peux-tu mettre une capture d'écran de la page où tu cherches ce jeu de caractère du fichier ? Avec la liste déroulante ouverte (même si on ne la voit pas en entier), que je puisse comparer avec ma version et chercher un autre encodage compatible ?
    0
    1. ekivox13 Messages postés 77 Statut Membre 14
       
      Oui, j'ai cherché latin1, mais il n'est pas dispo lors de l'import.. uniquement sur le interclassement de la colonne..

      J'ai fait un screen de ma page d'import..

      http://hpics.li/7fefbcc
      0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. ekivox13 Messages postés 77 Statut Membre 14
     
    Merci pour ton aide,

    bon j'ai résolu mon prob.. En faisant plusieurs chose..

    D'abord, excel exporte un csv à point virgule qui n'est pas en utf 8. J'ai utilisé Notepadd ++ pour convertir ça.

    Cela m'a permis de récup mes données non tronquées dans la bdd.

    Ensuite l'affichage était toujours mauvais sur les accents. J'ai du faire un utf8_encode dans mon php.

    Voilà problème résolu.
    0
    1. Utilisateur anonyme
       
      J'ai du faire un utf8_encode dans mon php
      Si tu avais déjà encodé en utf8 avec Notepad++, tu n'as aucune raison d'utiliser utf8_encode dans ton php. Il y a un autre problème.
      0
    2. ekivox13 Messages postés 77 Statut Membre 14
       
      de ce que j'ai trouvé à droite à gauche.. c'est la seule solution qui a fonctionné... Mais si tu as une autre idée pour éviter le endode.. Je suis preneur..

      Sachant que ma bdd est en utf_8

      que mon fichier csv est en utf8 sans bom

      que l'importation se fait en utf8

      que les données visible dans ma base sont complètes et avec accent après l'importation

      que mon meta est renseigné dans mon header.
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

      et que ma page php en en utf8 également...

      Moi je sèche là lol.
      0
    3. Utilisateur anonyme
       
      Tu as oublié (au moins ) un point :
      Si ta base est en utf8, tu dois à l'initialisation (connexion) lui faire exécuter la requête "SET NAMES utf8".
      0
    4. ekivox13 Messages postés 77 Statut Membre 14
       
      Ah oui, bien vu ! ça fonctionne sans decode ;)

      Merci !
      0