Excel détruisant le caractère spécial lorsqu'il est enregistré au format CSV


21

Je travaille sur un projet qui utilise un fichier CSV fourni par le client pour remplir une base de données. Le client doit créer la feuille de calcul, puis l'enregistrer en tant que CSV à télécharger, qui est ensuite analysé dans une base de données.

Le problème est, chaque fois que le client enregistre la feuille de calcul Excel en tant que fichier MS-DOS .csv, de nombreux caractères spéciaux sont convertis en points d'interrogation "?" (symboles tels que '"/). Cependant, si nous ouvrons ensuite le fichier CSV et remplaçons manuellement chaque? par le bon caractère, cela fonctionne très bien.

Le problème est que le fichier de données est ÉNORME, et nous ne pouvons pas raisonnablement le faire, alors j'espérais qu'il y avait un moyen de le sauvegarder. Nous avons essayé d'exporter en Unicode et ASCII en vain. Nous avons également essayé de télécharger sur Google Documents et de réenregistrer, cependant, cela casse également ces caractères.


2
Si vous êtes sur Excel 2007, dans la boîte de dialogue Enregistrer sous, il y a juste à gauche du bouton Enregistrer une liste déroulante Outils.Si vous choisissez l'option Web et sur l'onglet Encodage, vous pouvez sélectionner un encodage spécifique. Essayez si cela peut vous être utile

Quel est un exemple de ce texte?
enderland

1
Le problème n'est pas reproductible. Assurez-vous que les données correspondent réellement à ce que vous décrivez et non à certains caractères qui ne peuvent pas être représentés dans le codage MS-DOS.
Jukka K. Korpela

Réponses:


11

Assurez-vous que vous choisissez d'enregistrer en tant que CSV (Comma Delimited)et non pas CSV (MS-DOS), car DOS ne prend pas en charge les caractères UTF-8.


6

J'ai constaté que le problème de caractère perdu ne se produit (dans mon cas) que lors de l'enregistrement du format xlsx au format csv. J'ai essayé d'enregistrer le fichier xlsx en xls d'abord, puis en csv. Cela a réellement fonctionné.


Ça ne marche pas pour moi. Je reçois toujours? dans le fichier csv
thanos.a

4

Une solution de contournement possible consiste à l'enregistrer sous Unicode Text(2007 l'a, pas sûr des éditions précédentes), ce qui l'enregistre en tant que fichier texte séparé par des tabulations.

Ce fichier a conservé mes caractères unicode (dans mon cas, je travaillais avec des caractères asiatiques ) tout en produisant une sorte de fichier texte délimité que vous pouvez ensuite exécuter via des outils externes pour convertir en csv si nécessaire.

Cependant, mon entrée n'avait pas d'onglets intégrés dans chaque cellule, et je ne sais pas comment cela serait géré.


3

Voici ce qui fonctionne pour moi:

  1. Effectuer des corrections de données dans Excel ou CSV
  2. Enregistrer le fichier en tant que texte Unicode
  3. Ouvrez le bloc-notes
  4. Ouvrez le fichier Unicode que vous venez d'enregistrer à l'aide de NOTEPAD
  5. Utilisez votre curseur pour mettre en surbrillance une zone vide contenant un seul onglet 5a. Utilisez l'espace entre l'identifiant d'acquisition et le type de demande, car il contient UN ONGLET!
  6. Appuyez sur Cnrl-C pour copier le caractère de tabulation
  7. Tapez Cnlr-H pour ouvrir la boîte de fonction Remplacer
  8. Cliquez dans la zone de texte Rechercher et tapez Cnlr-V pour coller l'onglet
  9. Cliquez dans la zone Remplacer par du texte et tapez une virgule
  10. Cliquez sur Remplacer pour le tester une fois. Confirmez que l'onglet du fichier est remplacé par une virgule
  11. Cliquez sur Remplacer tout
  12. Cliquez sur Annuler
  13. Enregistrez le fichier et quittez
  14. Dans l'Explorateur Windows, remplacez l'extension de fichier par .csv

1
Cela a fonctionné pour moi, en utilisant Notepad ++.
ChrisB

Oui, j'ai dû exporter en Unicode et trouver et remplacer les onglets par des virgules aussi.
nilloc

2

J'ai ce problème depuis un certain temps maintenant, et j'ai enfin consacré du temps à le résoudre! J'ai pu (apparemment) résoudre le problème en enregistrant sous "Séparé par des virgules Windows (.csv)". Je l'ai essayé à partir d'un .xlsx et d'un .xls, tous deux convertis très bien en .csv. J'espère que cela vous aidera - faites-moi savoir si des problèmes surviennent avec cette méthode. Je ferai rapport si je vois quelque chose au cours des prochaines semaines.


1
Bienvenue dans Super User. Heureux de vous voir répondre directement aux questions.
CharlieRB

1

Solution:

  1. Ouvrez votre fichier CSV dans le bloc-notes (vous remarquerez qu'il dit ANSI), puis réenregistrez-le sous UTF-8 dans le bloc-notes.

  2. Ensuite, l'importation devrait fonctionner. Si toutefois vous l'ouvrez à nouveau dans Excel et que vous l'enregistrez, cela ne fonctionnera pas car Excel ne peut apparemment pas encoder nativement en UTF-8.

  3. L'autre option est de travailler avec votre fichier CSV dans www.LibreOffice.org (gratuit), qui peut encoder correctement en UTF-8 (je n'ai pas essayé cela moi-même cependant).

J'ai rencontré un problème similaire avec l'importation d'une csv de produits avec des fractions dans WooCommerce, qui était rejeté en raison de "?" caractères d'erreur. En effet, le fichier CSV n'a pas été codé en UTF-8. CEPENDANT, même après avoir enregistré le fichier CSV dans Excel avec l'encodage UTF-8, cela ne fonctionnait toujours pas.

Après avoir parcouru plusieurs forums, il semble que même si Excel donne la possibilité de coder en UTF-8 - lors de l'enregistrement en tant que CSV, Excel le reconvertit automatiquement en ANSI, même si vous sélectionnez UTF-8.


1
  1. Téléchargez et installez l'extension Unicode CSV pour Excel à partir de https://github.com/jaimonmathew/Unicode-CSV-Addin
  2. Enregistrez le fichier csv dans le nouveau menu "Unicode CSV" comme indiqué dans l'image ci-dessous.

entrez la description de l'image ici


1
Souhaitez-vous publier un lien vers ce complément, s'il vous plaît?
Xavier Poinas

J'ai mis à jour la réponse pour inclure la page github. Vous pouvez y trouver la page de téléchargement
thanos.a

0

Même si j'ai rencontré le problème des caractères spéciaux lors du téléchargement des termes japonais au format .csv, cependant, lorsque j'ai enregistré le fichier .csv au format texte (délimité par des tabulations), les caractères japonais étaient parfaitement remplis. Ensuite, je viens de copier les données du fichier texte et de les coller dans une feuille de calcul. A bien fonctionné !!!

Merci, Vaishakh


Cela ne fournit pas de réponse à la question. Pour critiquer ou demander des éclaircissements à un auteur, laissez un commentaire sous son article - vous pouvez toujours commenter vos propres articles, et une fois que vous aurez une réputation suffisante, vous pourrez commenter n'importe quel article .
Ramhound

0

Trouvé la meilleure solution jamais: http://woshka.com/blog/microsoft/microsoft-excel/solve-the-problem-saving-excel-csv-format-with-utf-8-unicode-encoding.html

Du lien:

1-Cliquez sur le menu Démarrer

Panneau de contrôle 2-Select

3-Recherchez les options régionales et linguistiques en mode classique ou saisissez son nom dans la barre de recherche en haut à droite de la fenêtre du panneau de configuration

4-Cliquez sur l'onglet avancé et cliquez sur les paramètres régionaux

5-Cliquez sur persan ou arabe ou sur le programme d'encodage UTF-08 que vous souhaitez enregistrer avec Excel dans CSV


woshka.com n'est plus une URL valide, c'est un domaine parqué pour le moment.
Craig London

0

pour le ™ j'ai trouvé une solution. Dans le fichier .xlsx, remplacez tous les "™" par "& tr-ade;". retirer le - du remplacer par. Enregistrez le fichier au format .csv et tout est terminé. souhaite que cela fonctionne pour vous.


0

Sur un ordinateur Mac, c'est ce qui a fonctionné pour moi.

Sur Excel, choisissez Enregistrer sous , puis dans le menu déroulant, choisissez Windows séparé par des virgules (CSV).

Ça marche juste !!!


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.