1

SpiderMonkeyはUnicodeエスケープを適切に処理しますか?ユニコードエスケープを使用して文字列をSpiderMonkeyで標準出力に出力しようとすると、それらが変更されます。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.
4

1 に答える 1

1

どのリビジョンを実行していますか?私のマシンで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
于 2013-01-19T05:19:52.530 に答える