Je développe une partie d'une application qui est responsable de l'exportation de certaines données dans des fichiers CSV. L'application utilise toujours UTF-8 en raison de sa nature multilingue à tous les niveaux. Mais l'ouverture de tels fichiers CSV (contenant par exemple des diacritiques, des lettres cyrilliques, des lettres grecques) dans Excel ne donne pas les résultats escomptés, montrant quelque chose comme „/¤, –/¶
. Et je ne sais pas comment forcer Excel à comprendre que le fichier CSV ouvert est encodé en UTF-8. J'ai également essayé de spécifier la nomenclature UTF-8 EF BB BF
mais Excel n'en tient pas compte.
Existe-t-il une solution de contournement ?
P.S. Quels outils peuvent potentiellement se comporter comme Excel ?
UPDATE
Je dois dire que j'ai dérouté la communauté avec la formulation de la question. Lorsque j'ai posé cette question, j'ai demandé un moyen d'ouvrir un fichier CSV UTF-8 dans Excel sans aucun problème pour l'utilisateur, de manière fluide et transparente. Cependant, j'ai utilisé une mauvaise formulation en demandant de le faire automatiquement . C'est très déroutant et cela s'oppose à l'automatisation des macros VBA. Il y a deux réponses à cette question que j'apprécie le plus : la toute première réponse d'Alex https://stackoverflow.com/a/6002338/166589 et j'ai accepté cette réponse ; et la deuxième par Mark https://stackoverflow.com/a/6488070/166589 qui sont apparus un peu plus tard. Du point de vue de la facilité d'utilisation, Excel semblait manquer d'un bon support CSV UTF-8 convivial. les deux Les réponses sont correctes, et j'ai accepté la réponse d'Alex en premier parce qu'il a vraiment indiqué qu'Excel n'était pas capable de faire cela de manière transparente. C'est ce que j'ai confondu avec automatiquement ici. La réponse de Mark propose une méthode plus compliquée pour les utilisateurs plus avancés afin d'obtenir le résultat escompté. Les deux réponses sont excellentes, mais celle d'Alex répond un peu mieux à ma question qui n'est pas clairement spécifiée.
MISE À JOUR 2
Cinq mois après la dernière modification, j'ai remarqué que la réponse d'Alex a disparu pour une raison quelconque. J'espère vraiment qu'il ne s'agissait pas d'un problème technique et j'espère qu'il n'y aura plus de discussion sur la meilleure réponse à donner maintenant. J'accepte donc la réponse de Mark comme étant la meilleure.
1 votes
Pouvez-vous utiliser des fichiers délimités par des tabulations ? Si oui, vous aurez peut-être plus de chance.
11 votes
Office 2010+ : les meilleurs travaux : UTF-16LE avec BOM et
\t
comme délimiteur. Fonctionne dans un environnement Excel anglais et non anglais. Peut appuyer surCtrl-S
sans sélectionner le format du fichier, etc. Préserve les caractères Unicode.0 votes
@Duncan franchement parlant, je suis confus et il est difficile de "juger". J'ai accepté la réponse d'Alex il y a plus de deux ans (questions et réponses du 14 mai), puis Mark a répondu en suggérant une solution de contournement délicate (je ne l'ai pas vérifiée) qui, étonnamment, a marqué plus de points que ma question, qui, elle aussi, est devenue populaire. Nous avons en fait refusé le support d'Excel dans mon projet il y a longtemps, et je ne veux pas enlever le score de réputation d'Alex, parce qu'Excel semblait, et semble probablement encore (s'il vous plaît corrigez-moi si je me trompe), mal gérer les CSV. C'est difficile à dire, désolé.
4 votes
La réponse d'Alex a été supprimée par un modérateur. Aucune explication n'a été donnée, mais si vous avez suffisamment de réputation, vous pouvez toujours la voir.
0 votes
Excel 2010 fonctionne bien avec la nomenclature UTF8 pour moi, donc je ne comprends pas que cela ne fonctionne pas pour vous. J'utilise " ;" comme délimiteur. Un double clic sur les fichiers csv de ce type s'ouvre correctement.
1 votes
@osexpert Et vous avez mis un vote négatif juste parce que votre Excel 2010 expérience diffère de celle que j'avais il y a plus de 6 ans ? Bien. Je prétends que cela ne fonctionnait pas pour Excel de manière simple à ce moment-là.
1 votes
Comme les machines à remonter le temps n'existent pas encore, je ne suis pas d'accord.
0 votes
Toutes les personnes qui ont répondu à la question avaient le même problème et ont proposé des solutions de contournement. Toujours pas d'accord ?
0 votes
Plusieurs commentaires en plus du mien disent que cela fonctionne avec la nomenclature UTF8, même depuis Excel 2007. J'ai moi-même testé Excel 2007 et cela fonctionne. Donc "J'ai aussi essayé de spécifier UTF-8 BOM EF BB BF, mais Excel l'ignore" n'est pas vrai.
0 votes
@osexpert Vous devez avoir utilisé soit importation de données ou tout autre chose mais certainement pas la fonction ouverte normale que je demandais dans la question initiale - afin que cela puisse fonctionner pour vous. Encore une fois, si votre réclamation contre la question de départ était vrai, je ne posterais jamais une telle question, ou je serais notifié dans la période de 6 ans au moins une fois par quelqu'un d'autre, et probablement dès le premier jour. Certaines personnes disent que ça marche, d'autres disent que ça ne marche pas. Moi, je dis que ça ne marche pas. Veuillez lire la question plus attentivement et prendre en compte d'autres facteurs qui vous échappent probablement. Merci.
0 votes
Oui, l'ouverture normale par (double clic) fonctionne avec la nomenclature UTF8. Testé avec Excel 2007 et 2010. Veuillez me laisser tranquille.
0 votes
J'ai visité cette page - constitution.kremlin.ru - qui est une page UTF-8 comme en témoigne la balise "<meta http-equiv="Content-Type" content="text/html ; charset=utf-8" />". J'ai enregistré la page en tant que fichier .txt et je l'ai ensuite ouverte avec Excel 2010. L'assistant d'importation de texte a été automatiquement appelé et a montré que l'origine du fichier était "65001:Unicode (UTF-8)". J'ai simplement cliqué sur Terminer et Excel a affiché la page en russe, ce que je ne peux pas lire. Lorsque vous ouvrez un fichier UTF-8, l'assistant d'importation de texte n'est-il pas automatiquement invoqué ?
0 votes
@yky Je ne me souviens pas vraiment, et je ne me souviens même pas de la version exacte avec laquelle j'ai testé le problème. Peut-être avez-vous des mises à jour d'Excel depuis lors ?
0 votes
J'utilise excel 2011 version mac. Il ne peut pas gérer l'utf-8 avec la nomenclature.
1 votes
La bonne réponse devrait probablement être "N'utilisez pas Microsoft". Il existe de meilleures alternatives, par exemple la suite LibreOffice, gratuite et open-source, et plus particulièrement LibreOffice Calc. Nous sommes en 2020, mais l'application mobile Excel ne peut toujours pas afficher UTF-8 correctement. C'est ridicule.