【发布时间】:2011-06-17 03:15:12
【问题描述】:
我的问题最好用一个例子来解释:
以下程序在尚未采用 Unicode 模式但采用 ISO-8859-15 的 Linux 系统上运行。环境设置如下: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() 中传递参数?
【问题讨论】:
-
“什么时候不应该” - 不是那么多余。您是否希望它错误地通过它们。 ;) 您是否检查过 netbeans 如何保存您的文件? Netbeans 使用 javac 进行编译,因此它应该编译相同。
-
彼得:谢谢,更正了标题。我会检查 Netbeans 是否创建了相同的类文件,我猜是这样。
-
检查过了。从 Netbeans 运行会产生错误的结果。在命令行中运行相同的类文件(由 Netbeans 构建)会生成正确的结果。
标签: java linux unicode netbeans character-encoding