javascript - Rhino 中的 Unicode

标签 javascript unicode character-encoding rhino

由于某些原因,Unicode 字符串在 Rhino, Mozilla's JavaScript engine 中表现不正确.如果我在 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("тотальная киборгизация"); } }正确输出西里尔字母。

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_ALLen_US.UTF-8没有帮助。

这个问题是否与这个 StackOverflow 问题有关,Javascript using UCS-2

有什么问题,如何在 Rhino REPL 中使用正确的 Unicode?

最佳答案

确实应该注意的是,JavaScript 并不能真正正确地处理 Unicode,因为它早于 UTF16。 (它确实使用了另一个类似但肯定不相同的 16 位编码系统。)

writeup explains the problem in well and provides libraries and workarounds .

关于javascript - Rhino 中的 Unicode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13861775/

相关文章:

character-encoding - 存储需要翻译的资源文本文件的首选编码是什么?

email - UTF-8主题行在Gmail中显示为问号

javascript - 正则表达式 + jquery - 修改文本

javascript - 在 node.js 中转换 itune XML 播放列表时遇到问题

ruby - 如何摆脱 ruby 中的非ascii字符

python - Reportlab - Unicode 字符以支持 unicode 的字体显示为框

javascript - 强制在 JS 中向上移 Action 用域链

javascript - 捆绑 API 请求

javascript - Bootstrap JQuery 加载两次 - 导航栏在移动 View 中不会折叠

mysql - 如何将 utf-8 设置为 mysql 服务器的标准字符集?