gpt4 book ai didi

java - 为什么我的 unicode 不能在乘客下工作?

转载 作者:行者123 更新时间:2023-11-30 05:16:01 25 4
gpt4 key购买 nike

这道题包含java和ruby。我有一个从 ruby​​ 调用的 java 程序。

这段代码在merb下完美运行,无需任何修改。

通过设置 $KCODE="UTF8",此代码将在 irb 下完美运行。

在我的一生中,我无法让它在 phusion乘客下工作 - 这是一个问题,因为我们的生产服务器在乘客下,但我大部分时间都花在 mongrel 或我的开发机器上的其他东西上。

设置非常简单。

这是java代码: 导入 java.io.; 导入java.util.;

public class Simple {

public static void main(String[] args) throws Exception {
System.out.println("Ç");
}

}

现在这是 ruby​​ 代码:

IO.popen("java -cp \"/home/me/pass\" Simple") do |f| @blah = f.read end

当在passenger/merb下运行时,你应该能够执行Merb.logger.error(@blah)并获得完全相同的测试数据——就像我说的,如果你设置了KCODE,这在merb下运行良好,在irb下运行良好但它在乘客下不起作用

更新——简化一切

最佳答案

问题可能是java子进程启动的环境配置不正确。一种暴力方法是使用 ENV 哈希注入(inject)环境变量。举个例子:

ENV['LC_CTYPE'] = 'en_US.UTF-8'

您可能还需要为 Java 程序编写一个包装器,以建立正确的环境并从那里开始工作,或者可能对 Java 程序本身进行修改,强制使用 UTF8 而不是读取环境。

关于java - 为什么我的 unicode 不能在乘客下工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1268328/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com