Conversion fichier- problème caractères spéciaux

Bonjour,

Dans le cadre de mon travail je dois réaliser l'import d'un fichier que je reçois sous format Xlsx, ensuite je le traite et je transforme en fichier csv avant l'import.

Sauf que dans mon fichier, il y a des caractères spéciaux ( des caractères chinois) , qui se transforme en point d'interrogation lorsque j'enregistre en format CSV. De ce fait mon fichier csv n'est pas correcte avec des points d'interrogation partout.

Comment pourrais-je faire en sorte que mon fichier ne soit pas modifier ?

Merci d'avance.

Bonjour,

Il faut encoder le fichier cvs en unicode (utf-8).

Fais une recherche sur

Mais je n'ai pas compris pourquoi "avant l'import" ?? tu le transformes en csv pour ensuite le réimporter en excel ?

ensuite je le traite et je transforme en fichier csv avant l'import

Bonjour,

Merci pour ta réponse. En fait , c'est le fichier étant sous format CSV que j'importe.

je mets en pièce jointe un bout de ce que je reçois en format xlsx

capture chinois

le problème est que, j'enregistre sous un format csv ensuite, mais ces caractères deviennent tous des points d'interrogation. Je constate cela lorsque je rouvre le fichier pour vérifier.

Impossible de traiter ta demande avec une image !

Je vais voir en me créant un fichier avec des caractères cyrilliques et grecs.

Exemple avec ce fichier ...

65csv-unicode.xlsx (7.86 Ko)

Je l'enregistre en format txt unicode

capture d ecran 556

Je lui change ensuite l'extension de txt en csv et cela fonctionne en relecture

45csv-unicode.csv (28.00 Octets)

Bonjour,

Je pense qu'il est préférable de ré-encoder le fichier dans le même format Unicode que celui d'origine (Utf-8, Utf-16LE, Utf-16BE, ...).

Pour connaître l'encodage d'origine tu peux utiliser NPP++

Pour l'export en csv encodé, il y a ADODB.Stream

PS : l'export excel en unicode (.txt) est de l'Utf-16LE

Edit : Le fichier l'origine est peut-être à la norme chinoise GB 18030 ...

une méthode simple pour encoder le fichier Excel, c'est d' utiliser Libre Office :

  • Ouvrir le fichier Excel avec LO
  • Enregistrer Sous : Texte CSV (*.csv)
  • Choisir le jeu de caractère : Utf8, Utf16 , GB 18030, ...
  • Vérifier les séparateurs,
  • Enregistrer
Note : leur Utf16 est plus précisément Utf-16LE

Merci à Tous les deux pour votre réponse @steelson et Patrice33740.

J'ai utilisé la méthode de steelson qui est plus rapide et ça marche !

Merci! beaucoup! vous êtes extra

Rechercher des sujets similaires à "conversion fichier probleme caracteres speciaux"