この質問には Java と Ruby が含まれています。Rubyから呼び出すJavaプログラムがあります。
このコードは merb の下で、変更を加えることなく完全に機能します。
このコードは、$KCODE="UTF8" を設定することにより、irb で完全に機能します。
私の人生では、phusion パッセンジャーの下で動作させることはできません。これは、本番サーバーがパッセンジャーの下にあるため問題ですが、ほとんどの時間を開発マシンで雑種または何かに費やしています。
セットアップは非常に簡単です。
Java コードは次のとおりです。; 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
Passenger/merb の下で実行すると、Merb.logger.error(@blah) を実行して、まったく同じテストデータを取得できるはずです。これは、KCODE を設定した場合、merb では正常に動作し、irb では正常に動作すると言ったように、乗客の下では機能しません
更新-- すべてを簡素化