Données importé dans BDD incomplete [Résolu/Fermé]

Signaler
Messages postés
70
Date d'inscription
jeudi 6 mars 2014
Statut
Membre
Dernière intervention
2 juin 2014
-
Messages postés
70
Date d'inscription
jeudi 6 mars 2014
Statut
Membre
Dernière intervention
2 juin 2014
-
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


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 ?
Messages postés
70
Date d'inscription
jeudi 6 mars 2014
Statut
Membre
Dernière intervention
2 juin 2014
11
Merci pour ta réponse,

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

Et je l'importe depuis phpmyadmin.

Au moment de l'importation dans phpmyadmin, pour le fichier à importer, choisis latin1 pour le "jeu de caractères du fichier :".
Messages postés
70
Date d'inscription
jeudi 6 mars 2014
Statut
Membre
Dernière intervention
2 juin 2014
11
Je n'ai pas latin dans le menu déroulant
Messages postés
70
Date d'inscription
jeudi 6 mars 2014
Statut
Membre
Dernière intervention
2 juin 2014
11
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 "?"

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 ?
Messages postés
70
Date d'inscription
jeudi 6 mars 2014
Statut
Membre
Dernière intervention
2 juin 2014
11
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

essaye iso8859-1
Messages postés
70
Date d'inscription
jeudi 6 mars 2014
Statut
Membre
Dernière intervention
2 juin 2014
11
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.
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.
Messages postés
70
Date d'inscription
jeudi 6 mars 2014
Statut
Membre
Dernière intervention
2 juin 2014
11
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.
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".
Messages postés
70
Date d'inscription
jeudi 6 mars 2014
Statut
Membre
Dernière intervention
2 juin 2014
11
Ah oui, bien vu ! ça fonctionne sans decode ;)

Merci !