在Rhino js中,换行符无法正确转换

时间:2012-11-24 14:53:19

标签: java javascript newline rhino

我正在尝试使用Rhino java引擎,我希望将其嵌入到我的项目中。我创建了一个Scriptable对象作用域,用于定义JavaScript中的全局函数print, printLine, log, logLine。我可以通过调用pullOutput来提取这些函数打印和记录的所有数据,这将返回一对所有打印的输出和记录的输出。我已经测试了这些功能,一切都按预期工作,但有一点。

当我为日志函数提供一个新行的参数时,该字符串不包含新行char 但只是“\ n”。例如,以下代码:

    Context context;
    try {
        context = Context.enter();
        TemplateScope scope = TemplateScope.init(context);
        context.evaluateString(scope, "log(\"test\" + \"\\n\");", "test source", 1, null);
        Pair<String, String> result = scope.pullOutput();
        System.out.println("log is: " + result.b);
    } finally {
        Context.exit();
    }

给出:

    out is: 
    log is: test\n

这显然不是我所期待的。

完整的代码在这里:

https://gist.github.com/4139978

1 个答案:

答案 0 :(得分:0)

已经修好了。另一个库用旧版本覆盖了我自己的rhino版本并引入了这个bug。