由于某些原因,Unicode字符串在,Mozilla的JavaScript引擎中的行为不正常。如果我在REPL中输入Unicode文本,或者操作它,它就会返回胡言乱语。
js> 'тотальная киборгизация'
B>B0;L=0O :81>@3870F8OASCII的角色工作得很好。
js> 'reprap for everyone'
reprap for everyoneUnix命令也运行得很好:
$ echo 'тотальная киборгизация'
тотальная киборгизацияJVM输出也很好,正确运行class Test { public static void main(String[] args) { System.out.println("тотальная киборгизация"); } }输出西里尔。
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问题有关吗,https://stackoverflow.com/a/9109335/596361
有什么问题,我如何在Rhino中使用适当的Unicode?
发布于 2013-11-07 14:36:30
应该注意的是,JavaScript并没有真正正确地处理Unicode,因为它早于UTF16。(它确实使用了另一个16位编码系统,这是类似的,但肯定不是相同的。)
这个书面解决方案很好地解释了这个问题,并提供了库和解决办法。。
https://stackoverflow.com/questions/13861775
复制相似问题