Données importé dans BDD incomplete

Résolu/Fermé
ekivox13 Messages postés 70 Date d'inscription jeudi 6 mars 2014 Statut Membre Dernière intervention 2 juin 2014 - 24 mars 2014 à 04:04
ekivox13 Messages postés 70 Date d'inscription jeudi 6 mars 2014 Statut Membre Dernière intervention 2 juin 2014 - 24 mars 2014 à 18:00
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

Utilisateur anonyme
24 mars 2014 à 09:17
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
ekivox13 Messages postés 70 Date d'inscription jeudi 6 mars 2014 Statut Membre Dernière intervention 2 juin 2014 14
24 mars 2014 à 11:19
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
Utilisateur anonyme
24 mars 2014 à 11:46
Au moment de l'importation dans phpmyadmin, pour le fichier à importer, choisis latin1 pour le "jeu de caractères du fichier :".
0
ekivox13 Messages postés 70 Date d'inscription jeudi 6 mars 2014 Statut Membre Dernière intervention 2 juin 2014 14
24 mars 2014 à 11:54
Je n'ai pas latin dans le menu déroulant
0
ekivox13 Messages postés 70 Date d'inscription jeudi 6 mars 2014 Statut Membre Dernière intervention 2 juin 2014 14
24 mars 2014 à 11:57
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
Utilisateur anonyme
24 mars 2014 à 12:06
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
ekivox13 Messages postés 70 Date d'inscription jeudi 6 mars 2014 Statut Membre Dernière intervention 2 juin 2014 14
24 mars 2014 à 12:22
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
Utilisateur anonyme
24 mars 2014 à 13:35
essaye iso8859-1
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ekivox13 Messages postés 70 Date d'inscription jeudi 6 mars 2014 Statut Membre Dernière intervention 2 juin 2014 14
24 mars 2014 à 14:05
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
Utilisateur anonyme
24 mars 2014 à 14:09
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
ekivox13 Messages postés 70 Date d'inscription jeudi 6 mars 2014 Statut Membre Dernière intervention 2 juin 2014 14
24 mars 2014 à 16:29
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
Utilisateur anonyme
24 mars 2014 à 16:40
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
ekivox13 Messages postés 70 Date d'inscription jeudi 6 mars 2014 Statut Membre Dernière intervention 2 juin 2014 14
24 mars 2014 à 18:00
Ah oui, bien vu ! ça fonctionne sans decode ;)

Merci !
0