J'ai essayé de trouver une solution / explication raisonnable (sans succès) pour savoir pourquoi Excel par défaut supprime la nomenclature lors de l'enregistrement d'un fichier au type CSV.
Veuillez me pardonner si vous trouvez que c'est un double de cette question. Cela gère la lecture des fichiers CSV avec un codage non ASCII, mais cela ne couvre pas la sauvegarde du fichier (c'est là que réside le plus gros problème).
Voici ma situation actuelle (que je vais rassembler est courante parmi les logiciels localisés traitant des caractères Unicode et un format CSV):
Nous exportons les données au format CSV en utilisant UTF-16LE, garantissant que la nomenclature est définie (0xFFFE). Nous validons une fois le fichier généré avec un éditeur hexadécimal pour nous assurer qu'il a été correctement défini.
Ouvrez le fichier dans Excel (pour cet exemple, nous exportons des caractères japonais) et constatez qu'Excel gère le chargement du fichier avec l'encodage correct.
Les tentatives d'enregistrement de ce fichier vous inviteront avec un message d'avertissement indiquant que le fichier peut contenir des fonctionnalités qui peuvent ne pas être compatibles avec le codage Unicode, mais vous demande si vous souhaitez quand même enregistrer.
Si vous sélectionnez la boîte de dialogue Enregistrer sous, il vous sera immédiatement demandé d'enregistrer le fichier en tant que "Texte Unicode" plutôt qu'en CSV. Si vous sélectionnez l'extension "CSV" et enregistrez le fichier, il supprime la nomenclature (évidemment avec tous les caractères japonais).
Pourquoi cela arriverait-il? Existe-t-il une solution à ce problème, ou s'agit-il d'un «bug» / limitation connu d'Excel?
De plus (comme problème secondaire), il semble qu'Excel, lors du chargement de fichiers CSV codés UTF-16LE, n'utilise que des délimiteurs TAB. Encore une fois, est-ce un autre «bug» / limitation connu d'Excel?