Perché la stringa & # 8220; & # 191; & # 8221; tradurre in & # 8220; & # 194; & # 191; & # 8221; quando si chiama .getBytes ()

StackOverflow https://stackoverflow.com/questions/176084

  •  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?

È stato utile?

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
scroll top