Java:Runtime.getRuntime().exec() 在不应以 unicode 格式传递参数时

标签 java linux unicode netbeans character-encoding

我的问题最好用一个例子来解释: 以下程序在 Linux 系统上运行,该系统采用 Unicode 模式,但采用 ISO-8859-15。环境设置如下:LC_CTYPE=de_DE@euro

import java.io.*;
import java.util.*;

public class UnicodeTest {
    public static void main(String[] args) throws Exception {
            Runtime.getRuntime().exec(new String[] { "foobar", "äöü" });
    }
}

当我在命令行中使用 javac 编译这个程序并运行它时,foobar 在 ISO-8859 中正确获取参数 äöü -1。从 Netbeans 运行的同一程序将参数作为 Unicode 传递,从而使其在被调用程序中不可用。当调用该方法时,在 Tomcat 中也会发生同样的情况。哪个设置或环境变量使用 Java 来确定如何在 Runtime.exec() 中传递参数?

最佳答案

找到了。该行为由系统属性 file.encoding 控制。 Netbeans 将其设置为 UTF-8。在命令行中,它是 ISO-8859-15

关于Java:Runtime.getRuntime().exec() 在不应以 unicode 格式传递参数时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4826687/

相关文章:

linux - 如何仅在文件中的一行中查找两个单词,它们之间存在特定数量的随机单词

python - python 中的 Unicode 错误与表单(使用 Mechanize)

php - SQLSRV fatal error : Severe error translating Unicode

java - 在使用 hadoop 从原始日志中捕获异常时,一个完整的异常将被拆分为 2 个映射

java - JTable 和组合框。右键打开

java - 如何强制 Checkstyle 中的枚举常量必须为大写?

java - 如何在 itext Hyphenation Auto cyrillic 中使用它

linux - Jenkins 在远程机器上执行带有参数的 shell 脚本

linux - 在linux中查找命令

unicode - 使用 CFile::typeUnicode