在Java中指定默认文件编码[重复]

Posted

技术标签:

【中文标题】在Java中指定默认文件编码[重复]【英文标题】:Specify the default file encoding in Java [duplicate] 【发布时间】:2016-01-28 08:11:53 【问题描述】:

我正在尝试运行读取文件并处理它们的 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 作为主类。

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

【问题讨论】:

谢谢,但不是这样。 UTF-8 有效。我保留这个问题以防其他人遇到这种意外的 PowerShell 行为。 添加了 powershell 标签,因为这是问题的真正原因。 【参考方案1】:

错过了一些愚蠢的东西。

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

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

现在一切正常。

愚蠢的 PowerShell。

【讨论】:

-D"file.encoding=UTF-8"

以上是关于在Java中指定默认文件编码[重复]的主要内容,如果未能解决你的问题,请参考以下文章

{WinError 2}在使用python编码时,系统找不到Sublime文本中指定的文件

在 Ordinal Encoder 中指定编码顺序

python基础语法_字符串编码

如何在ffmpeg中指定nvenc使用的GPU [关闭]

获取魔术线/shebang中指定的编码(来自模块内)

如何使用 .vbs 文件保存具有在电子表格中指定的名称的文件