opencsv CSVWriter l'utilisation de l'utf-8 ne semble pas fonctionner pour plusieurs langues
J'ai une très ennuyeux problème d'encodage à l'aide de opencsv.
Lorsque j'exporte un fichier csv, j'ai défini le type de caractère comme 'UTF-8'.
CSVWriter writer = new CSVWriter(new OutputStreamWriter("D:/test.csv", "UTF-8"));
mais quand j'ai ouvert le fichier csv dans Microsoft Office Excel 2007, il s'avère qu'il a 'UTF-8 BOM' encodage?
Une fois que j'ai enregistrer le fichier dans le bloc-notes et ré-ouvrir, le fichier se tourne vers UTF-8 et toutes les lettres, il semble bien.
Je pense que j'ai cherché, mais je n'ai pas trouvé de solution pour empêcher mon fichier de tourner en "UTF-8 BOM'. toutes les idées, s'il vous plaît?
Java ne devez pas ajouter de la NOMENCLATURE sur son propre, car il n'est également pas
OutputStreamWriter
constructeur prenant deux chaînes de caractères, je pense qu'il y a quelque chose qui manque dans votre code. Pourrait la NOMENCLATURE être partie des données que vous écrivez?
OriginalL'auteur user1213162 | 2012-04-13
Vous devez vous connecter pour publier un commentaire.
Je suppose que votre fichier possède un 'UTF-8 sans BOM" encodage.
Mieux vous nourrir de la NOMENCLATURE de l'encodage de votre fichier, même s'il n'est pas nécessaire dans la plupart des cas, mais une seule exception est lorsque vous traitez avec ms excel.
Maintenant votre fichier sera entendu par excel au format utf-8 csv.
Cela a été une véritable plaie pour moi depuis des années! Votre solution fonctionne parfaitement. Merci
OriginalL'auteur goodhyun
UTF-8
etUTF-8 Signature
(mal nommé parfois commeUTF-8 BOM
) sont les mêmes codages, et la signature il est uniquement utilisé pour la distinguer de toutes les autres encodages. Unicode application doit traiter UTF-8 signature (qui est de trois octets de la séquenceEF BB BF
) correctement.Pourquoi Java est spécifiquement ajoute cette signature et de la façon d'arrêter de faire ce que je ne sais pas.
OriginalL'auteur Petr Abdulin