Sinceramente, vedo poca utilità in ciò che hai fatto e non credo nemmeno che sia compilabile. Dovrebbe darti un "cannot find symbol" sull'istruzione
codice:
String b = utf8.toString();
Comunque, stai passando un oggetto String per ottenere un altro oggetto String, tramite trasformazioni successive.
Devi sapere che in Java, gli oggetti String rappresentano tutti delle stringhe codificate in UTF-16:
Dalla documentazione della classe String
A
String represents a string in the UTF-16 format
Quindi non ha molto senso ciò che stai cercando di fare.
Se vuoi lavorare con diversi charset, dovrai usare degli array di byte.
Se vuoi la rappresentazione UTF-8 di una stringa, questo è ciò che è necessario/sufficiente fare:
codice:
String miaStringa = ...;
byte[] utf8 = miaStringa.getBytes("UTF-8");
Se prendi quell'array di byte e ricostruisci un nuovo oggetto String in questo modo:
codice:
String nuova = new String(utf8, "UTF-8");
Ottieni nuovamente la stessa identica stringa di partenza.
Quello che stai facendo tu è ancora più articolato: ottieni un array di byte codificati in UTF-8 nell'array "latin1". Quindi costruisci un nuovo String con quell'array dicendo a Java che l'array è codificato in "ISO-8859-1" (ed è già un errore: i byte rappresentano una stringa in UTF-8, non in ISO-8859-1, quindi ne viene fuori un minestrone). Poi prendi questa nuova stringa e ne ottieni un nuovo array di byte codificati in UTF-8.
Infine restituisci il toString() di questo array (che non è visibile in quel punto, essendo dichiarato dentro al try, ecco il perchè del cannot find symbol)... ora, il metodo toString() definito per gli array non ha alcun senso: esso restituisce una rappresentazione standard dell'indirizzo di memoria in cui è allocato l'array...
Credo che tu debba chiarire bene ciò che vuoi fare.
PS: se non ottieni l'errore "cannot find symbol" significa che hai un altro array, globale dichiarato a livello di classe, con lo stesso nome e Java sta referenziando per forza quello... che sarà nullo o comunque inalterato rispetto all'inizio dell'esecuzione del metodo.
Ciao.