SpiderMonkey是否可以正确处理Unicode转义?当我尝试使用SpiderMonkey将带有Unicode转义符的字符串打印为标准输出时,它会使它们变得笨拙。 V8和Node.JS显示预期的输出。

这是SpiderMonkey:

$ js
js> this.print("\u201cquotes\u201d")
quotes


这比看上去糟,因为输出包含无效的UTF-8二进制数据。

这是V8,其中显示了引号:

$ v8
V8 version 3.7.0 [sample shell]
> this.print("\u201cquotes\u201d")
“quotes”


这是Node.JS,还显示了引号:

$ node
> console.log("\u201cquotes\u201d")
“quotes”


编辑:我在Mac OS X 10.8.2(Mountain Lion)上运行。

$ echo $LANG
en_US.UTF-8

$ js --version
JavaScript-C 1.8.5 2011-03-31

$ brew info spidermonkey
spidermonkey: stable 1.8.5, HEAD
https://developer.mozilla.org/en/SpiderMonkey
Depends on: readline, nspr
/usr/local/Cellar/spidermonkey/1.8.5 (101 files, 12M) *
https://github.com/mxcl/homebrew/commits/master/Library/Formula/spidermonkey.rb
==> Caveats
This formula installs Spidermonkey 1.8.5.
If you are trying to compile MongoDB from scratch, you will need 1.7.x instead.

最佳答案

您正在运行哪个版本?在我的机器上检出mozilla-central看起来不错。

mozilla-central/js/dbg$ echo $LANG
en_US.UTF-8
mozilla-central/js/dbg$ ./js -e 'this.print("\u201cquotes\u201d")'
“quotes”
mozilla-central/js/dbg$ hg log -l1 | head -n1
changeset:   119130:8cc32d6fa707

关于javascript - SpiderMonkey和Unicode转义:意外行为,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14370695/

10-11 01:11