由于某种原因,Unicode 字符串在Mozilla 的 JavaScript 引擎Rhino中无法正常运行。如果我在 REPL 中输入 Unicode 文本,或者对其进行操作,它会返回乱码。
js> 'тотальная киборгизация'
B>B0;L=0O :81>@3870F8O
ASCII 字符工作得很好。
js> 'reprap for everyone'
reprap for everyone
Unix 命令也可以正常工作:
$ echo 'тотальная киборгизация'
тотальная киборгизация
JVM 输出也很好,class Test { public static void main(String[] args) { System.out.println("тотальная киборгизация"); } }
正确运行输出 Cyrillic。
Java 和 Rhino 版本是:
$ 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
语言环境:
$ echo $LC_TYPE
$ echo $LANG
en_US.UTF-8
更改LC_ALL
为en_US.UTF-8
没有帮助。
这个问题是否与这个 StackOverflow 问题有关,Javascript using UCS-2?
有什么问题,如何在 Rhino REPL 中使用正确的 Unicode?