Je travaille avec opencsv (2.3), je crée l'en-tête du fichier csv à partir du fichier de propriétés qui contient des caractères spéciaux.Encodage UTF-8 dans opencsv
Je code en utilisant UTF-8 et définissez la propriété en tant qu'en-tête à csv.
Mais je vois toujours le fichier CSV créé ne reflète pas l'encodage.
(j'ai utilisé la même approche pour créer des PDF à l'aide JasperReports, là, je pouvais voir les colonnes avec des caractères spéciaux sont codés bien et présentés correctement)
version Java: 7
propriétés Contenu du fichier: (é est stockée sous forme de se à © et ü est stocké sous forme ü)
lan.response = Nombre de reponses
lan.exef = EXECU tion
lan.exeg = Ausführung
approche à l'aide csv:
/* properties file*/
final File propertiesFile = new File(System.getProperty("user.home"), "tmp/lan.properties");
final FileInputStream fis= new FileInputStream(propertiesFile);
final InputStreamReader inputStreamReader = new InputStreamReader(fis, "UTF-8");
final Properties properties= new Properties();
properties.load(inputStreamReader);
properties.list(System.out);
/*CSV Header*/
StringBuilder header = new StringBuilder();
header.append(properties.get(lan.response)).append(",");
header.append(properties.get(lan.exef)).append(",");
header.append(properties.get(lan.execg));
String[] colHeader = header.split(",");
FileOutputStream fos = new FileOutputStream(fileName);
Writer fw = new OutputStreamWriter(fos, StandardCharsets.UTF_8);
CSVWriter csvWriter = new CSVWriter(fw, ";");
// add header
csvWriter.writeNext(colHeader);
// add data
String[] col= new String[3];
for(Customer c : customerList) {
col[0] = c.getCustomerName();
col[1] = c.getCustomerId();
col[2] = c.getCustomerBirthDate();
csvWriter.writeNext(col);
}
csvWriter.close();
Quelqu'un peut-il s'il vous plaît aidez-moi que je suis capable de voir les caractères spéciaux dans d'autres formats de fichiers (ex: PDF) pas en CSV? Lorsque vous exécutez votre application, démarrez-la avec le fichier -Dfile.encoding = UTF-8.
Toute aide s'il vous plaît? Avant de remplir les valeurs au format CSV, j'ai tout essayé. Et il s'affichait correctement. Donc je suppose que le problème est avec CSV qui n'accepte pas les caractères spéciaux et les encoder automatiquement à ISO-8859-1 et montrant quelques symboles –
Dois-je utiliser la version supérieure du fichier opencsv jar ou des idées? –