RingoJS不打印unicode字符

时间:2014-07-07 01:31:05

标签: javascript windows unicode cygwin ringojs

我无法让Ringo.JS打印unicode字符。我的运行时环境是cygwin。我把它归结为一个展示问题的单线程序(见下文)。 cat表示我的终端能够显示unicode文本,但是ringo没有。我想知道“ringo”shell脚本是否以某种方式以非unicode符合的方式执行,但我不熟悉exec - shell的方式。更不知道为什么某些方法可能有也可能没有unicode支持。

有没有办法让ringo在cygwin中正确打印unicode?

$ cat unicodeTest.js
print( "αλφα" );
console.log( "αλφα" );
$ ringo unicodeTest.js
αλφα
αλφα
$ ringo --version
RingoJS version 0.10
$ which ringo
/cygdrive/c/bin/ringojs-0.10/bin/ringo

更新:

出于好奇,我尝试将输出重定向到文件并进行检查。在我的终端中运行ringo的方式肯定有问题,因为终端可以正确打印unicode和ringo进程unicode,但是ringo不会在终端中打印unicode。有谁知道可能导致这种情况的原因?

$ ringo unicodeTest.js  > output.text
αλφα

$ cat output.text
αλφα

更新#2:

似乎没有构建用于Windows的ringo来支持控制台I / O中的utf8。但是,node.js可以工作。我切换到另一台运行不同版本Windows的机器,得到了类似的结果。

$ cat utf8test.js
console.log( "καίρε, κόσμε" );
$ ringo utf8test.js
και��ε, κο�σμε
$ node utf8test.js
καίρε, κόσμε

所以底线,如果你想编写一个JavaScript程序在windows中的控制台上执行utf8,那么解决方案是使用node.js而不是ringojs。 node.js开发人员添加了许多API的阻塞I / O版本(c.f. fs.readFile与fs.readFileSync),因此您可以选择适合您需求的I / O模型。

0 个答案:

没有答案