Mir*_*lov 7 javascript unicode rhino character-encoding
出于某种原因,在Rhino(Mozilla的JavaScript引擎)中, Unicode字符串的行为不正常.如果我在REPL中输入Unicode文本,或者操纵它,它会返回乱码.
js> '????????? ????????????'
B>B0;L=0O :81>@3870F8O
Run Code Online (Sandbox Code Playgroud)
ASCII字符工作得很好.
js> 'reprap for everyone'
reprap for everyone
Run Code Online (Sandbox Code Playgroud)
Unix命令也可以正常工作:
$ echo '????????? ????????????'
????????? ????????????
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
区域设置:
$ echo $LC_TYPE
$ echo $LANG
en_US.UTF-8
Run Code Online (Sandbox Code Playgroud)
更改LC_ALL到en_US.UTF-8于事无补.
这个问题与这个StackOverflow问题,Javascript使用UCS-2有什么关系吗?
有什么问题,我如何在Rhino REPL中使用正确的Unicode?
确实应该注意的是,JavaScript 并不能真正正确地处理 Unicode,因为它早于 UTF16。(它确实使用另一个 16 位编码系统,该系统类似,但肯定不一样。)
| 归档时间: |
|
| 查看次数: |
1111 次 |
| 最近记录: |