Warum wird die Zeichenfolge „¿“ get übersetzt „¿“, wenn .getBytes () aufrufen

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

  •  05-07-2019
  •  | 
  •  

Frage

Beim Schreiben der Zeichenfolge "¿" out mit

System.out.println(new String("¿".getBytes("UTF-8")));

¿ wird statt nur ¿geschrieben.

WARUM? Und wie wir das Problem beheben?

War es hilfreich?

Lösung

Sie müssen diese nicht verwenden UTF-16 zu lösen:

new String("¿".getBytes("UTF-8"), "UTF-8");

funktioniert gut. Solange die Codierung der getBytes() Methode gegeben ist das gleiche wie die Codierung Sie auf den String Konstruktor übergeben, sollten Sie sich gut!

Andere Tipps

Sie müssen den Zeichensatz im String-Konstruktor angeben (siehe API-Dokumentation ).

Versuchen:

System.out.println(new String("¿".getBytes("UTF-8"), "UTF-8"));

Sie müssen die Codierung angeben, sowohl wenn die Zeichenfolge in Bytes konvertieren und wenn die Bytes wieder in einen String zu konvertieren.

wie die Systemkonsole Sounds ist nicht in UTF-8

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top