Aus irgendeinem Grund verhalten sich Unicode-Zeichenfolgen in Rhino, Mozilla's JavaScript engine nicht ordnungsgemäß. Wenn ich Unicode-Text in die REPL-Datei eingabe oder manipuliere, gibt es wieder Kauderwelsch zurück.Unicode in Rhino
js> 'тотальная киборгизация'
B>B0;L=0O :81>@3870F8O
ASCII-Zeichen funktionieren gut.
js> 'reprap for everyone'
reprap for everyone
Unix-Befehle zu funktionieren:
$ echo 'тотальная киборгизация'
тотальная киборгизация
JVM Ausgang zu fein ist, läuft class Test { public static void main(String[] args) { System.out.println("тотальная киборгизация"); } }
Cyrillic korrekt ausgibt.
Java und Rhino-Versionen sind:
$ java -version
java version "1.7.0_09"
OpenJDK Runtime Environment (IcedTea7 2.3.3) (7u9-2.3.3-0ubuntu1~12.10.1)
OpenJDK 64-Bit Server VM (build 23.2-b09, mixed mode)
$ rhino
Rhino 1.7 release 3 2012 05 18
Locales:
$ echo $LC_TYPE
$ echo $LANG
en_US.UTF-8
Ändern LC_ALL
zu en_US.UTF-8
hilft nicht.
Hat dieses Problem mit dieser StackOverflow-Frage zu tun, Javascript using UCS-2?
Was ist das Problem, und wie kann ich richtigen Unicode in Rhino REPL verwenden?
Ich sehe das gleiche Problem nicht. Ich verwende "Rhino 1.7 Release 2 2009 03 22" und "Java Version" 1.6.0_26 "Java (TM) SE Laufzeitumgebung (Build 1.6.0_26-b03-384-9M3425)" 'Java HotSpot (TM) 64-Bit-Server-VM (Build 20.1-b02-384, gemischter Modus) 'unter Mac OS X 10.5.8. –
Versuchen Sie, Rhino aus der Umgebung zu entfernen. Was passiert, wenn Sie der Unix-Kommandozeile den Befehl 'echo 'тотальная киборгизация' geben, ohne Rhino zu starten? –
Die Ausgabe, die Sie erhalten, nach der Berücksichtigung von Steuerzeichen, ist eigentlich UTF-16, nicht UTF-8. (Angesichts dessen ist die Tatsache, dass das einfache ASCII funktioniert, eigenartig.) Sie könnten versuchen, dieses Java zu kompilieren und auszuführen, um zu sehen, ob die Einstellungen der VM schuld sind: 'class Test { public static void main (String [] args) { System.out.println ("тотальная киборгизация"); } } ' – psmay