指定Java中的默认文件编码
我正在尝试运行Java应用程序(我没有源代码)来读取和处理文件。不幸的是,它不能处理UTF-8编码的文件 使用我已经看到函数指定Java中的默认文件编码,java,powershell,encoding,command-line-arguments,Java,Powershell,Encoding,Command Line Arguments,我正在尝试运行Java应用程序(我没有源代码)来读取和处理文件。不幸的是,它不能处理UTF-8编码的文件 使用我已经看到函数Files.readAllLines失败,出现UnmappableCharacterException。虽然可以为函数提供字符集,但由于我没有应用程序的源代码,因此无法更改它 所以我想告诉Java使用UTF-8作为默认字符集。说明我应该向命令行添加-Dfile.encoding=UTF-8。但是,当我键入时: java -Dfile.encoding=UTF-8 -jar
Files.readAllLines
失败,出现UnmappableCharacterException。虽然可以为函数提供字符集,但由于我没有应用程序的源代码,因此无法更改它
所以我想告诉Java使用UTF-8作为默认字符集。说明我应该向命令行添加-Dfile.encoding=UTF-8
。但是,当我键入时:
java -Dfile.encoding=UTF-8 -jar <my jar> <arguments>
java-Dfile.encoding=UTF-8-jar
我收到一条错误消息,称无法将.encoding=UTF-8
作为主类找到
我知道我错过了一些愚蠢的东西,但我找不到它是什么…我错过了一些愚蠢的东西
我在用PowerShell。PowerShell以特殊的方式处理-
。我不得不写信
java "-Dfile.encoding=UTF-8" -jar ...
现在一切都很好
愚蠢的PowerShell。谢谢,但不是这样。UTF-8有效。我保留此问题,以防其他人遇到此意外的PowerShell behvaior。添加PowerShell标记是因为这是问题的实际原因。或者
-D“file.encoding=UTF-8”