2013-01-17 4 views
1

SpiderMonkey가 유니 코드 이스케이프를 올바르게 처리합니까? 유니 코드로 된 문자열을 SpiderMonkey로 표준 출력으로 출력하려고하면, 그 문자열이 monges됩니다. V8 및 Node.JS는 예상대로 출력을 표시합니다.SpiderMonkey 및 유니 코드 이스케이프 : 예기치 않은 동작

여기의 SpiderMonkey입니다 :

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

이 출력이 유효한 UTF-8없는 이진 데이터를 포함하고 있기 때문에 그것이 보는 것보다 더 나쁘다. 또한 따옴표를 보여주는

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

여기에서 Node.js를,이다 :

가 여기에 인용 부호를 표시하는 V8,의

$ 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. 

답변

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 
+0

Homebrew를 통해 OSX에 설치된 버전 1.8.5를 실행 중입니다. 문제가 적절하게 편집되었습니다. –

+0

방금 ​​119358 : a97eb4f09112을 작성 했으므로 작동 했으므로 1.8.5부터 수정 된 버그 여야합니다. –