Prob avec caracteres diacritiques entre Linux et Windows

Bonjour,
Les donnees du fichier .xls genere par l’export de donnees de ma DB sont corrompues. En effet, tous les caracteres diacritiques sont mal interpretes.

  1. L’interface est un outil web, asp et sql. Les donnees sont stockees correctement dans les DBs puisqu’elles sont correctement affichees sur la page web (si vous consultez le dossier par apres).
  2. le fichier .xls genere, lui, remplace tous les caracteres acentues par d’autres caracteres.
  3. DBs sur linux et .xls exploitees sur Windows
  4. Les caracteres en questions sont les é,è,à,ê, etc. Mais aussi ^t, î, ^c (caracteres slaves)
    Comment pourrais-je parametrer l’import dans Excel (ou compatible) pour que le soft en tienne compte?
    (la restriction de caracteres a l’enregistrement ne peut etre envisage, ergonomie oblige).
    Merci d’avance pour vos idees.

Salut,

je sais que quand les fichiers sont corrompus souvent il s’agit que le texte est en Ascii au lieu d’être en binaire.
Il y a quelques problèmes entre linux et windows parfois. “ta DB” c’est quoi? Débian?

Hello,

Je pense que ton problème vient de l’interclassement. Tes tables utilisent quel type d’interclassement (latin1, utf8) ?

Si c’est de utf8, essaye de changer l’interclassement d’une de tes tables en latin1 (equivalent au charset ISO-8859-1) et exporte là pour voir si ton problème persiste.

Salut,

effectivement, le probleme vient de parametrages, soit ascii, soit latin1 etc.

Il est fort probable que la modification que farting fly propose fonctionne, mais je doute que mes ITs acceptent le changement.
C’est pour cette raison que je cherche un methode pour corriger ces erreurs a l’importation de ces donnees dans Excel.

Je contacte mes ITs, pour la solution en amont, et vous tiens au courant.
Mais si quelqu’un a une reponse concernant un solution en aval, a l’import, cela m’aiderais considerablement.

Merci bcp


Au fait, pour eviter tout malentendu, DB = database, pas distribution linux. Quoi qu'il en soit, je demande qd meme...

Tu dois obligatoirement exporter ta base en .xls ou un .csv convient aussi (importable aussi pas excel) ?
Parce que tu dois pouvoir reccuperer le contenu de ton fichier pour l’encoder directement en ISO-8859-1 avec utf_decode() en php.
Edité le 29/01/2008 à 16:52

ok, la, je suis convaincu et n’insiste pas sur ce point.

Par contre, et avant de fermer ce topic, le fichier est deja exporte en .xls :arf:
D’ailleurs, a l’ouverture du-dit fichier, on a un message d’avertissement:
“The file you are trying to open, ‘xxxxxxxxxxxxxx.xls’, is in a different format than specified by the file extension. Verify that the file is not corrupted and is from a trusted source before opening the file. Do you want to open the file now?
‘YES’ ‘NO’ ‘HELP’ .”

Et, aussi etonnant que cela puisse parraitre de la part des fichiers d’aide de la marque, le bouton “help” n’amene aucune reponse…

Peut-etre que ca peut t’aider a te mettre sur la voie…

C’est toi qui génère le fichier Excel? Et Excel à la base ça supporte pas Unicode par défaut?

J’ai pas excel à la maison, mais tu peux peut-être spécifié à Excel que le fichier est en UTF-8?

C’est suite a mon action que le fichier est gere, via l’interface admin, mais je n’ai aucun pouvoir dessus.
C’est pour ca que j’envisageais de demander a mes ITs de modifier le code, si necessaire.

Quant a Excel, il n’y a aucun moyen de lui demander d’ouvrir/importer le fichier avec un ou plusieurs parametres (j’ai essayer sur les versions 2003 et 2007, seuls les autres types de fichiers tels que CSV et autres sont parametrables a l’importation).
D’ailleurs, j’ai aussi essaye sur openOffice et ai le meme probleme.

J’ai tente d’ouvrir le fichier .xls avec blocNote, du XML genere le fichier par une mise en page tableau html. C’est ce dernier qui est interprete par Excel.
Chose interessante, les infomations sont ici parfaitement ecrite!

La solution est donc proche, et n’est absolument pas due a l’eportation.
C’est definitivement Excel qui interprete mal le fichier.

Une idee?

Ah? Dans le fichier Excel y a un tableau HTML dans le genre

… ? Ie: si tu renommes en .html ça passe?

C’est peut être le format équivalent à ODS de MS (le fameux format Open Source de MS …) mais pas lu par ta version d’excel? (quoique pour la 2007 quand même…)

et oui, voici un exemple d’export au format xls d’une table mysql contenant des caractères accentués (via phpmyadmin) :


<html xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:x="urn:schemas-microsoft-com:office:excel"
xmlns="http://www.w3.org/TR/REC-html40">

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
    <meta http-equiv="Content-type" content="text/html;charset=utf-8" />
<style id="Classeur1_16681_Styles">
</style>

</head>
<body>

<div id="Classeur1_16681" align=center x:publishsource="Excel">

<table x:str border=0 cellpadding=0 cellspacing=0 width=100% style="border-collapse: collapse">
<tr><td class=xl2216681 nowrap>1</td><td class=xl2216681 nowrap>salle des fêtes</td><td class=xl2216681 nowrap>3 rue de la gouaille</td><td class=xl2216681 nowrap>0687737373</td><td class=xl2216681 nowrap>salle@fetes.fr</td><td class=xl2216681 nowrap>11h à 21h</td><td class=xl2216681 nowrap>NULL</td></tr><tr><td class=xl2216681 nowrap>3</td><td class=xl2216681 nowrap>CafArts Théâtre</td><td class=xl2216681 nowrap>adresse</td><td class=xl2216681 nowrap>0130121212</td><td class=xl2216681 nowrap>NULL</td><td class=xl2216681 nowrap>20h30</td><td class=xl2216681 nowrap>/images/logos/logokfar.gif</td></tr>
</table>
</div>
</body>
</html>

Toute la BD est en utf8 : par contre c’est très bien interprété par open office sous linux : ja vais essayer avec Excel sous Windows…
Edité le 30/01/2008 à 00:26

Bon, ben sous Vista32 et Excel2003, pas de soucis ! le charset est bien interprété !

Reccupère le code ci-dessus (.xls) et regarde si ton Excel l’interprète bien. Si c’est bien le cas, c’est sans doute ton export qui pose problème.
Edité le 30/01/2008 à 00:39

Bon, renommer le fichier ne fonctionne pas (html, etc). cest un peut brutal mais on ne sait jms…

Par contre, l’ouvrir avec excel malgres l’avertissement, et le sauver, modifie le tout. Jai alors le code de generation au lieu du tableau de donnees, et le tableau en question est en html, dans un dossier separer que excel me cree.

Dans le code de generation, on trouve:

Ce qui est la cause de tout les ennui!
Le changer manuellement ne fonctionne pas…le mal est deja fait.

Donc, les ITs doivent imperativement faire la modif.
A moins qu’il n’y ai une autre facon. Que pensez vous?

Sinon, merci bcp pour votre precieuse aide.

Effectivement je pense que charset=windows-1252, c’est la cause du soucis ! Demande la modification et regarde si ça résoud tes ennuis !