在Java中指定默认文件编码

时间:2015-10-28 13:56:50

标签: java powershell encoding command-line-arguments

我正在尝试运行Java应用程序(我没有源代码)来读取文件并处理它们。不幸的是,它无法处理以UTF-8编码的文件。

使用JD我看到函数Files.readAllLines失败并出现UnmappableCharacterException。虽然可以为函数提供Charset,但由于我没有应用程序的源代码,我无法更改它。

所以我想告诉Java使用UTF-8作为默认字符集。 This answer解释说我应该在命令行中添加-Dfile.encoding=UTF-8。但是,当我输入:

java -Dfile.encoding=UTF-8 -jar <my jar> <arguments>

我收到一条错误消息,指出.encoding=UTF-8无法作为主要类别找到。

我知道我错过了一些愚蠢的东西,但我找不到它是什么......

1 个答案:

答案 0 :(得分:1)

错过了一些愚蠢的东西。

我正在使用PowerShell。 PowerShell以特殊方式处理-。我不得不写

java "-Dfile.encoding=UTF-8" -jar ...

现在一切正常。

愚蠢的PowerShell。