Bonjour,
je cherche à charger le contenu d'un fichier csv dans une variable métier (vmParamsTrt).
Pour ce faire, je charge d'abord le fichier dans un document (listeParams), puis dans une tâche automatique, je crée une opération qui alimente la variable métier vmParamsTrt à partir du script suivant :
import com.company.test.ParamsTrt;
def docId = apiAccessor.getProcessAPI().getLastDocument(processInstanceId, "listeParams").getId();
byte[] docContenuByte = apiAccessor.getProcessAPI().getDocumentContent(docId.toString());
String docContenuString = new String(docContenuByte);
/*byte[] docCibleByte = docContenuString.getBytes("ISO-8859-1");*/
byte[] docCibleByte = docContenuString.getBytes("UTF-8");
String docCibleString = new String(docCibleByte);
String[] fichierLigne = docCibleString.split("\r\n");
/*def nblignes = paramsLigne.length;*/
def paramsListe = [];
fichierLigne.each{
paramsListe.add({ currentFichierLigne ->
def paramsLigne = new com.company.test.ParamsTrt()
String[] col = currentFichierLigne.split(";");
paramsLigne.par1= col[0]
paramsLigne.par2= col[1]
paramsLigne.par3= col[2]
paramsLigne.par4= col[3]
paramsLigne.par5= col[4]
return paramsLigne
}(it))
}
paramsListe.remove(0);
return paramsListe
Le problème est que l'une des valeurs contenue dans le fichier contient un caractère accentué (il s'agit du mot "Année").
Dans la variable Métier, je récupère " Ann�e".
J'ai essayé d'appliquer une conversion en UTF-8 avec l'instruction getBytes("UTF-8"), comme le montre le script ci-dessus, mais ça ne change rien.
J'ai essyé également getBytes("ISO-8859-1"), et là je récupère "Ann?e"
Une idée de comment je dois faire pour récupérer correctement les caractères accentués ?
D'avance, merci,
Thierry.