这个问题包含java和ruby。我有一个从 ruby 调用的 java 程序。
此代码在 merb 下完美运行,无需任何修改。
通过设置 $KCODE="UTF8",此代码将在 irb 下完美运行。
对于我的一生,我无法让它在 phusion 乘客下工作 - 这是一个问题,因为我们的生产服务器处于乘客之下,但我大部分时间都花在我的开发机器上的 mongrel 或其他东西上。
设置非常简单。
这是java代码:import java.io。; 导入 java.util。;
public class Simple {
public static void main(String[] args) throws Exception {
System.out.println("Ç");
}
}
现在这里是红宝石代码:
IO.popen("java -cp \"/home/me/pass\" Simple") do |f| @blah = f.read end
当在乘客/merb 下运行时,您应该能够执行 Merb.logger.error(@blah) 并获得完全相同的测试数据——就像我说的那样,如果您设置了 KCODE,这在 merb 下工作正常,在 irb 下工作正常,但确实如此不在乘客下工作
更新——简化一切