Existe-t-il un moyen de modifier le codage utilisé par le constructeur String (byte [])?Modification du codage par défaut pour String (octet [])
Dans mon propre code j'utilise String (byte [], String) pour spécifier le codage mais j'utilise une bibliothèque externe que je ne peux pas changer.
String src = "with accents: é à";
byte[] bytes = src.getBytes("UTF-8");
System.out.println("UTF-8 decoded: "+new String(bytes,"UTF-8"));
System.out.println("Default decoded: "+new String(bytes));
La sortie en est:
UTF-8 decoded: with accents: é à Default decoded: with accents: é Ã
J'ai essayé de changer la propriété système file.encoding
mais il ne fonctionne pas.
Quelqu'un at-il essayé l'approche -Dfile.encoding? Ce serait génial de pouvoir le faire de manière agnostique. –
@MattPassell Nous utilisons les arguments suivants lors du lancement de la JVM pour nous assurer que nous spécifions correctement UTF-8 partout: -Dfile.encoding = ISO646-US -Dsun.jnu.encoding = ISO646-US et il semble fonctionner correctement. –
Merci pour la réponse. Est-ce que je manque quelque chose? J'ai juste googlé pour ISO646-US et j'ai découvert que c'est un nom officiel pour ASCII. Comment cela vous aide-t-il à utiliser UTF-8? –