Perché la stringa & # 8220; & # 191; & # 8221; tradurre in & # 8220; & # 194; & # 191; & # 8221; quando si chiama .getBytes ()
-
05-07-2019 - |
Domanda
Quando si scrive la stringa " & # 191; " usando
System.out.println(new String("¿".getBytes("UTF-8")));
& # 194; & # 191; è scritto anziché solo & # 191 ;.
PERCHE '? E come lo ripariamo?
Soluzione
Non è necessario utilizzare UTF-16 per risolvere questo problema:
new String("¿".getBytes("UTF-8"), "UTF-8");
funziona perfettamente. Finché la codifica data al metodo getBytes ()
è la stessa della codifica che passi al costruttore String, dovresti andare bene!
Altri suggerimenti
È necessario specificare il set di caratteri nel costruttore String (consultare Documenti API ).
Prova:
System.out.println(new String("¿".getBytes("UTF-8"), "UTF-8"));
È necessario specificare la codifica sia quando si converte la stringa in byte, sia quando si riconvertono i byte in una stringa.
Sembra che la console di sistema non sia in UTF-8
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow