Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 21/08/2016, à 13:42

ancelet

(RÉSOLU) Problème d'encodage entre libreoffice et phpmyadmin

Bonjour,

Je ne sais pas si cette question entre bien dans le cadre de ce forum.

J'exporte des données au format csv à partir de LibreOffice Calc. Je choisis l'encodage utf-8.
Ensuite, sous phpmyadmin, j'importe ces mêmes données par la méthode DATA LOCAL, dans une table également encodée en utf-8.

Et, patatras, les caractères accentués ne sont pas reconnus correctement : j'obtiens à la place des éà êçî...
Je note d'ailleurs que si j'ouvre le même fichier csv avec LibreOffice ou gedit, le texte apparait correctement ; en revanche, si je l'ouvre avec notepad, j'obtiens également éà êçî...

Je précise que j'ai déjà procédé exactement de la même manière, et sans problème, sous Windows.

Merci pour votre aide.

Dernière modification par ancelet (Le 25/08/2016, à 08:41)

Hors ligne

#2 Le 21/08/2016, à 14:48

Rufus T. Firefly

Re : (RÉSOLU) Problème d'encodage entre libreoffice et phpmyadmin

Salut,

Lance gedit. Puis dans fichier -> ouvrir, choisis utf8 dans l'encodage. C'est une option d'ouverture dans kate (kde), mais je pense qu'elle existe aussi dans gedit.
Puis ouvre ton fichier csv.
Pourquoi faire ce test ? Parce que si tu ouvres ton fichier csv en cliquant dessus (ou avec ouvrir, ouvrir avec gedit...), gedit détecte en principe l'encodage réel, qui n'est peut-être pas du utf8, et adapte automatiquement en conséquence.  Manuellement, en fixant l'encodage d'ouverture, tu verras bien si c'est réellement de l'utf8 ou pas...

Edit : il faut trouver autre chose. Parce que kate (donc probablement aussi gedit) détecte l'encodage de toutes façons... même en choisissant un encodage qui ne correspond pas... Désolé...

Peut-être :

file ton_fichier.csv

Dernière modification par Rufus T. Firefly (Le 21/08/2016, à 15:06)


La provocation est une façon de remettre la réalité sur ses pieds. (Bertolt Brecht)
Il n'y a pas de route royale pour la science et ceux-là seulement ont chance d'arriver à ses sommets lumineux qui ne craignent pas de se fatiguer à gravir ses sentiers escarpés. (Karl Marx)
Il est devenu plus facile de penser la fin du monde que la fin du capitalisme

Hors ligne

#3 Le 21/08/2016, à 15:08

ancelet

Re : (RÉSOLU) Problème d'encodage entre libreoffice et phpmyadmin

Salut Rufus et merci pour ta réponse.

J'ai choisi ta procédure, et ... j'obtiens bien les bon caractères : éàêçî
Ce qui confirme que le fichier est bien en utf-8, comme la table :
57b9b59bb3f69.jpg

... et ne simplifie pas le problème.

Hors ligne

#4 Le 21/08/2016, à 15:34

Rufus T. Firefly

Re : (RÉSOLU) Problème d'encodage entre libreoffice et phpmyadmin

Tu as vu ? J'ai édité, après vérification chez moi.
Mais attention, la capture que tu donnes sert à choisir le filtre d'importation du fichier. Mais pas le filtre d'importation dans la table, qui est défini lors de la création de la table elle-même.
Et après ça, il se peut encore que l'affichage du contenu de la table se fasse avec un encodage différent de celui que les données ont réellement...

En fait, quand ça merde, c'est parfois assez compliqué de trouver où, exactement, ça se passe... Parce que des choses de cette sorte, ça peut jouer aussi...

<head>
...
  <meta http-equiv="Content-Type" content="text/html; charset=iso8859-1" />

et aussi la configuration d'apache...
Et celle de mysql : http://dev.mysql.com/doc/refman/5.5/en/charset.html

Exemple : à un moment donné, j'avais résolu un problème analogue (en php) dont je ne trouvais pas la cause, avec :

    $cx = new mysqli ($host, $user, $psw, $database);
    ...
    @$cx->query ("SET NAMES utf8");

Tu peux essayer ça, aussi (dans un terminal) :

mysql -u ton-login-mysql -p ton-pass-mysql
>use ta_base;
>select * from ta_table;

Dernière modification par Rufus T. Firefly (Le 21/08/2016, à 15:46)


La provocation est une façon de remettre la réalité sur ses pieds. (Bertolt Brecht)
Il n'y a pas de route royale pour la science et ceux-là seulement ont chance d'arriver à ses sommets lumineux qui ne craignent pas de se fatiguer à gravir ses sentiers escarpés. (Karl Marx)
Il est devenu plus facile de penser la fin du monde que la fin du capitalisme

Hors ligne

#5 Le 21/08/2016, à 15:55

ancelet

Re : (RÉSOLU) Problème d'encodage entre libreoffice et phpmyadmin

Pour préciser le diagnostic, je viens d'essayer la même opération, sur la même table, du même serveur en ligne, mais depuis Windows.
- le même fichier provoque le même dysfonctionnement
- en revanche, si je fais le même export depuis la même feuille, avec LibreOffice Windows, plus de problème.

On dirait donc que l'erreur vient du fichier, et pas de la table sad

Je précise de plus que les caractères pourris apparaissent dans PhpMyadmin lui-même, et pas sur une page php.

Dernière modification par ancelet (Le 21/08/2016, à 15:57)

Hors ligne

#6 Le 21/08/2016, à 16:00

Rufus T. Firefly

Re : (RÉSOLU) Problème d'encodage entre libreoffice et phpmyadmin

ancelet a écrit :

Pour préciser le diagnostic, je viens d'essayer la même opération, sur la même table, du même serveur en ligne, mais depuis Windows.
- le même fichier provoque le même dysfonctionnement
- en revanche, si je fais le même export depuis la même feuille, avec LibreOffice Windows, plus de problème.

On dirait donc que l'erreur vient du fichier, et pas de la table sad

Je précise de plus que les caractères pourris apparaissent dans PhpMyadmin lui-même, et pas sur une page php.

phpmyadmin est écrit en php !

As-tu essayé ça :

file ton_fichier.csv

Edit : les fins de lignes des fichiers txt ne sont pas las mêmes avec w$, mac, et unix. Ça n'a pas d'effet sur les caractères eux-mêmes, mais ça peut en avoir sur la reconnaissance du type de fichiers. Avec de l'encodage windows-1258 (tout à fait spécifique à m$) et des fins de lignes w$, l'import se passe peut-être correctement sur phpmyadmin w$, alors que libreoffice calc encode peut-être en iso8859-1 sous gnu/linux. Il faut vraiment suivre tout ça à la trace (explorer les préférences de libreoffice, regarder ce qu'il y a comme options d'exportations)...

Dernière modification par Rufus T. Firefly (Le 21/08/2016, à 16:14)


La provocation est une façon de remettre la réalité sur ses pieds. (Bertolt Brecht)
Il n'y a pas de route royale pour la science et ceux-là seulement ont chance d'arriver à ses sommets lumineux qui ne craignent pas de se fatiguer à gravir ses sentiers escarpés. (Karl Marx)
Il est devenu plus facile de penser la fin du monde que la fin du capitalisme

Hors ligne

#7 Le 21/08/2016, à 19:39

ancelet

Re : (RÉSOLU) Problème d'encodage entre libreoffice et phpmyadmin

Voici la réponse :

/home/jdp/Documents/lisa/essai_ea.csv: UTF-8 Unicode text

Tu en déduis ?

Edit : Pour les fins de ligne, effectivement, j'ai remarqué que, lorsque j'ouvrais le fichier csv créé sous Ubuntu LibreOffice avec un éditeur w$, les lignes n'étaient pas séparées. Cela n’empêchait pas néanmoins PhpMyadmin de reconnaître qu'il y avait plusieurs lignes. Un indice ?

Dernière modification par ancelet (Le 21/08/2016, à 19:43)

Hors ligne

#8 Le 22/08/2016, à 07:31

ancelet

Re : (RÉSOLU) Problème d'encodage entre libreoffice et phpmyadmin

Bonjour,

Toujours dans l'espoir de déterminer l'encodage de ce fichier, j'ai fait l'essai de l'ouvrir avec Notepad, sous Ubuntu.
Alors que gedit, et file le voient codé en utf8, notepad le voit en ansi. Mais quand il l'ouvre, il affiche les caractères pourris.

Si je fais un copié-collé de gedit à notepad, et que je l'enregistre en utf8, tout rentre dans l'ordre, pour ces deux logiciels.
Mais... il n'en va pas de même pour l'importation sous phpmyadmin, qui affiche toujours les mêmes caractères erronés. sad

Hors ligne

#9 Le 25/08/2016, à 08:40

ancelet

Re : (RÉSOLU) Problème d'encodage entre libreoffice et phpmyadmin

Bonjour,

A toutes fins utiles, voici comment je suis parvenu à résoudre le problème :
Pour l'usage que je veux en faire (importation dans une table de base de donnée encodée UTF-8), la meilleure (et jusqu'à preuve du contraire la seule solution à partir de LibreOffice) est de ... ne pas faire une exportation avec l'encodage UTF8 qui est proposé par défaut sous Ubuntu.

En choisissant l'encodage "Europe Occidentale (Windows1252/WinLatin1)" - qui est le format proposé par défaut sous w$- l'importation par PhpMyAdmin se fait sans aucun problème.

Pourquoi, comment, et pourquoi le format utf8 ne produit que des aberrations, c'est une autre question...

Bonne journée, et merci pour vos interventions.

Edit : ce problème n'est pas spécifique à Ubuntu, à part le choix par défaut de l'exportation en csv.

Dernière modification par ancelet (Le 25/08/2016, à 08:43)

Hors ligne