String (en java), est toujours en UTF-16... et getBytes() renvoit par défaut ce style là (sauf configuration spéciale de la JVM non recommandée)
La ligne:
String stringISO = new String ( stringUTF8.getBytes(), "ISO-8859-1" );
Dit:
stringUTF8.getBytes():
Prends le contenu (UTF-16) de stringUTF8.... (donc on a un byte[] avec des caractères UTF-16 dedans, par exemple 00 2A 00 71)
new String( byte[] , "ISO-8859-1")
Construit une String à partir de ce tableau, considéré comme des caractères en ISO-8859-1
Cela ne peut donc pas marcher.
Pour résumer, une fois qu'on a une String en Java, on n'a jamais besoin de convertir, *sauf* pour passer à un tableau de byte[] (ce qui n'est pas le cas ici).
Reste à savoir comment stringUTF8 est obtenu en amont ... !
Partager