当java程序在unix上运行时,Sysout会输出不可读的字符

时间:2018-02-08 05:48:40

标签: java unix

在将此标记为重复之前,请先回答此问题。我一直在搜索,并且无法用之前相关问题的答案来解决这个问题。

我有一个在控制台上打印文本的Java程序。在我对Eclipse的测试中,文本是可读的。但是,此Java程序旨在由Unix作业调用。但是当我打开作业日志时,文字是不可读的。

d^@^C????^D^F?`^T??Q0(????c?Z1?^

我试图通过在Sysout上定义字符编码来改变我在Java中的代码,但下面的代码都没有工作。

System.setOut(new PrintStream(System.out, true, "ASCII"));

System.setOut(new PrintStream(System.out, true, "UTF-8"));

作业日志采用ASCII格式。

$file myFile.txt
myFile.txt: ascii text

1 个答案:

答案 0 :(得分:0)

无法发表评论,所以我写了一个"答案"。 对于运行程序的JavaVM的编码可能存在问题。

您可以通过设置编码参数来更改它:

-Dfile.encoding=UTF-8 
-Dfile.io.encoding=UTF-8
-DjavaEncoding=UTF-8

将UTF-8替换为您要使用的编码。