Ich habe ein Zeichensatzproblem mit Literal-String in Java.Java-Literal-String: falscher Zeichensatz zur Laufzeit
Wie Sie in Bild unten sehen können, habe ich ein statisches Objekt namens TITULO mit einem literalen String-Konstanten-Parameter "Título". Wenn ich das Programm starte, wird dieser String als "Tàtulo" gelesen. Ich weiß nicht warum.
ich die charset Einstellungen bei Eclipse Projekteigenschaften-Fenster und Tomcat-Einstellungen erkunden, aber alle sie sind mit UTF-8 als Option.
Ich verwende Tomcat 7, Eclipse Helios und Windows SO.
Kann mir jemand bei diesem Problem helfen?
Scheint, dass die Konsole auf eine andere Codierung eingestellt ist, vielleicht cp1252 oder latin1. –
Ersetzen Sie "this.id = id" durch "this.id = TITULO". Nun hat this.id 7 Zeichen oder 6. –
@DanielFischer Nicht unbedingt die Konsole, aber vielleicht verwendet Eclipse im Allgemeinen den falschen Zeichensatz? Was passiert, wenn Sie die JVM die Größe des Strings bestimmen lassen? Setzen Sie 'int len = id.length();' und sehen Sie, was der Wert von 'len' im Debugger ist. Dies kann eine JVM-Kodierungsfehlanpassung sein. Diese Informationen werden beim Debuggen über einen Socket übertragen. Vielleicht versucht Eclipse, es mit einer anderen Codierung als Tomcat zu ermitteln. Ansonsten habe ich keine Ahnung. : 3 – Brian