Changer le codage par défaut d'Excel en UTF-8?

25

J'utilise une variété d'outils pour préparer régulièrement des données pour le Web. Une étape me demande d'ouvrir un CSV dans Excel, d'apporter des modifications et d'enregistrer le fichier.

Existe-t-il un moyen de forcer Excel à accepter le codage UTF-8 et à enregistrer ses fichiers avec ce codage?

Dizzley
la source
1
Pour clarifier, je voudrais modifier un paramètre afin qu'Excel suppose qu'un fichier d'entrée est UTF-8 par défaut. Comme mentionné ci-dessous, LibreOffice / OpenOffice fait cela.
Dizzley
Si vous n'avez pas réellement de caractères Unicode à gérer, j'envisagerais d'utiliser un middleware pour convertir tous les CSV en ASCII, puis ouvrir dans Excel.
Vassile
1
Question connexe ici mais pas exactement la même.
hhh

Réponses:

15

J'ai répondu à une question similaire à l' encodage de caractères par défaut pour Excel Text Wizard? .

J'ai trouvé ma réponse à Changer le type d'origine de l'importation de texte par défaut dans Excel .

  1. Dans l'éditeur de registre, accédez à HKEY_CURRENT_USER> Logiciel> Microsoft> Office> [Version Excel ici - probablement le numéro le plus élevé dans ce dossier]> Excel> Options
  2. faites un clic droit sur le côté droit et allez dans Nouveau> DWORD
  3. nommez l'élément DefaultCPG et enregistrez
  4. faites un clic droit sur DefaultCPG et choisissez Modifier
  5. définir la base en décimal
  6. entrez le code affiché dans l'assistant Excel (pour UTF-8, c'est 65001)
  7. cliquez sur OK.

Comme Vasille le dit dans le commentaire de cette question, si votre fichier n'est pas réellement au format UTF-8, vous voudrez peut-être techniquement convertir les caractères du fichier au codage que vous souhaitez avant d'ouvrir dans Excel. Pour mes besoins, cependant, UTF-8 fait un assez bon travail d'affichage des caractères non corrompus.

Robert H.
la source
3
Y a-t-il des raisons de ne pas le faire? Pourquoi n'est-ce pas le comportement par défaut d'Excel? --- Mon équipe traite souvent des jeux de données contenant des caractères étrangers, et je me demande s'il y a une raison de ne pas effectuer cette action sur chacune de nos machines.
user1318135
3
Cela n'a malheureusement pas fonctionné sur ma machine. Les fichiers restent ouverts avec l'encodage par défaut (Win 7, Office 2016).
user1318135
8
Ne fonctionne pas sur le mien aussi, Win 10 Office 2016
Phuah Yee Keat
2
Pas de dé. Excel se comporte aussi bêtement que jamais. On pourrait s'attendre à ce qu'une fonctionnalité évidente comme celle-ci soit accessible via une préférence utilisateur dans un logiciel aussi mature qu'Excel.
Aaron Bramson,
4

Un moyen facile de changer le codage Excel ANSI en UTF-8 est d'ouvrir le fichier .csv dans le bloc-notes, puis de sélectionner Fichier> Enregistrer sous. Maintenant, en bas, vous verrez l'encodage défini sur ANSI, changez-le en UTF-8 et enregistrez le fichier en tant que nouveau fichier, puis vous avez terminé.

Moudiz
la source
Je vais expérimenter cela. Un problème que j'ai est d'ouvrir les fichiers de manière cohérente dans l'encodage correct, donc je n'obtiens pas de données dans deux encodages dans un seul fichier de résultats. Ensuite, il devient difficile à réparer. Je souhaite vraiment qu'Excel me permette une meilleure façon de choisir l'encodage du fichier d'entrée.
Dizzley
2

Vous devez utiliser l' File > Importoption et commencer avec un document vierge et spécifierUTF-8

entrez la description de l'image ici

mais cela est loin d'être optimal pour en faire un paramètre par défaut pour tous les fichiers, de toute façon il n'est pas nécessaire de faire pivoter les fichiers autour de Google Drive ou de LibreOffice. Les valeurs par défaut sont mal choisies et le handicap à changer est irritant.

en relation

  1. Comment définir le codage des caractères lors de l'ouverture d'Excel mais ne trouve pas l'option de modifier les valeurs par défaut de sorte que tous les fichiers soient automatiquement ouverts avec UTF-8 au lieu du format Macintosh dans OSX

  2. Comment changer l'option de fichier par défaut en UTF-8 loin de l'option de fichier Macintosh dans Apple.SE.

hhh
la source
0

J'ai résolu un problème similaire auparavant. En vain, mais vous pouvez utiliser LibreOffice , qui est UTF-8 par défaut.

Lluser
la source
LibreOffice est très pratique pour cela. Cependant, j'ai parfois des macros VBA à exécuter. Merci Lluser
Dizzley
0

Il existe un complément Excel disponible ici pour travailler avec des fichiers CSV Unicode qui devrait vous aider.

Voici la note du développeur Jaimon Mathew:

Excel traite les fichiers .csv comme des fichiers texte et remplacera tous les caractères Unicode par «?» Lorsqu'ils sont enregistrés normalement. Si vous souhaitez conserver les caractères Unicode, vous devez enregistrer le fichier en tant que «texte Unicode (* .txt)», qui est un fichier délimité par des tabulations. Étant donné que je n'ai trouvé aucune solution existante pour conserver les caractères Unicode au format CSV, j'ai pensé essayer de créer un complément Excel pour faire exactement cela.

1

Karan
la source
0

Ce n'est pas la meilleure solution, mais c'est une option: téléchargez votre fichier Excel sur Google Drive, ouvrez-le avec Google Tabs et téléchargez-le en tant que fichier csv. Ça a marché pour moi.

Viktor
la source
5
Cela ne répond pas à la question de savoir comment modifier l'encodage d'un document Excel.
Ramhound
Bien sûr, lorsque vous ouvrez le CSV dans Excel, vous perdez le formatage des cellules, de sorte que certaines chaînes d'ID numériques sont converties en entiers.
Dizzley du
0

En supposant que vous ayez un shell Unix disponible (Cygwin), j'ajoute à l'avant du fichier csv un petit ID unicode de 3 caractères (UTF-8), puis il se lit bien dans Excel et, plus important encore, il est correctement traité comme entrée à l'aide de VB Excel automatisation.

UTF-8.txt

EFBBBF << hex éditer dans un fichier de 3 caractères.

cat UTF-8.txt fichier à utiliser.csv> nouveau_fichier.csv

avwtp
la source
1
(1) Pouvez-vous décrire comment / pourquoi cela fonctionne? (2) Pouvez-vous décrire exactement comment créer ce UTF-8.txtfichier?
Scott
Je suggère d'utiliser un éditeur hexadécimal et de taper la séquence de 3 caractères. Pourquoi ça marche, aucune idée. J'ai trouvé cette solution en prenant un fichier csv UTF-8 existant, en le renommant en txt, en l'important dans Excel (comme suggéré dans d'autres threads), en l'enregistrant au format CSV avec le plugin Unicode (autre thread), puis en faisant un diff binaire des deux fichiers. La seule différence était la séquence de départ à 3 caractères.
avwtp
Voir ce fil pourquoi il fonctionne [lien] ( stackoverflow.com/questions/6002256/… )
avwtp