0

我正在尝试执行包含波兰字符的 Runtime.getRuntime().exec() 命令。命令从第一个波兰字母中删除。我得到的不是波兰字母“?”。

如何设置正确的编码以正确执行此命令?

我正在使用的命令: execCommand("php /home/script/url param1 param2 param3)

execCommand 看起来像:

private String execCommand(String command)
{
    String output="";
    try
    {
        Process proc = Runtime.getRuntime().exec(command);
        BufferedReader read = new BufferedReader(new InputStreamReader(proc.getInputStream()));
        try
        {
        proc.waitFor();
        }
        catch(InterruptedException e) 
        {
            output=e.getMessage();
        }
        while(read.ready())
        {
            output=read.readLine();
        }
    }
    catch(IOException e)
    {
        output=e.getMessage();
    }

    return output;
}
4

1 回答 1

1

您可以尝试以下方法:

String command = URLEncoder.encode("<your command>", "utf-8");

然后你可以尝试通过Runtime.exec

您还可以检查您的 JDK 是否真正支持:

Charset.forName("UTF-8")

如果由于任何原因失败,那么您的 JDK 中可能有错误/未配置

于 2013-03-13T19:58:32.633 回答