Question

Je développe une application Java qui exporte des données vers des fichiers CSV, destinés à être ouverts dans Excel par les utilisateurs finaux. Nous venons de remarquer que la fonction d'exportation utilise le codage par défaut de la plate-forme Java. Cela entraîne la perte des caractères trémas et l'échec du test unitaire sur le serveur de génération (configuré pour utiliser le codage US-ASCII comme codage par défaut de la plate-forme, afin de détecter de tels problèmes potentiels).

La question est: quel serait le meilleur encodage à utiliser? Comment Excel détermine-t-il le codage à utiliser? Utilise-t-il quelque chose de spécifique à la plate-forme qui correspond vraisemblablement à la plate-forme par défaut de Java?

Je suis actuellement orienté vers le codage en dur Cp1252 - qui devrait couvrir les machines cibles (l'environnement de déploiement est en fait spécifié) et qui résoudrait le problème du test. À partir de googler, Excel ne semble pas bien gérer UTF-8, c’est donc inutile, et s’en tenir au codage par défaut de la plate-forme exigerait une sorte de solution de contournement pour les tests.

Était-ce utile?

La solution

Je m'attendrais à ce que Excel fonctionne bien avec le codage par défaut de la plate-forme. Rester fidèle à cela semble être le meilleur choix pour Excel dans le cas général. Vérifier si la plate-forme par défaut est US-ASCII et utiliser Cp1252 à la place (je suppose que le bidouillage pour les tests) serait l’équivalent conceptuel de la suppression d’un avertissement du compilateur. Vous savez que cela ne s'applique pas dans ce cas.

Cependant, puisque vous écrivez que vous contrôlez le déploiement en production, pourquoi hésitez-vous à coder en dur Cp1252? Cela semble être une solution parfaitement raisonnable si tel est le codage cible de l’application.

Autres conseils

Vous pouvez obtenir les paramètres régionaux du système (à partir des propriétés du système) et créer un fichier de sortie avec ce codage. Si vos fichiers ne sont ouverts que dans Excel, vous devrez peut-être consulter Apache POI?

Think Excel fonctionne bien avec UTF-16. Quel est le problème avec l'exportation dans UTF-16. Au moins, les caractères non-ascii seront préservés au lieu d'être simplement jetés.

Modifier, ok, 'bien' pourrait peut-être exagérer le fonctionnement d'Excel avec UTF-16, mais il semble toujours que UTF-16LE fonctionne mieux que UTF-8

UTF-8 devrait bien fonctionner maintenant. J'ai gratté les produits, puis je les ai enregistrés au format CSV. J'utilise WP All Import, puis je télécharge ce CSV. Tout cela est converti au format XML, puis tous sont téléchargés sous forme de publications WP. Génial! Jetez un coup d’œil à jam tangan casio

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top