首页 > 解决方案 > 如何在 IntelliJ 的命令行格式化程序中指定文件编码

问题描述

在一组 Java 源文件上运行IntelliJ 的命令行代码格式化程序后,源中的德语字符被替换为“垃圾”。

如何配置格式化程序的输入和输出编码?

我尝试将-encoding iso-8859-15 -docencoding iso-8859-15作为选项添加到格式化程序命令行,但这些选项无法识别。

我还尝试创建一个包含以下内容的idea.properties 文件:

-Dfile.encoding=ISO-8859-15

IDEA_PROPERTIES并使用指向该文件的环境变量集运行格式化程序:

C:\>set IDEA_PROPERTIES="E:\project\config-files\idea.properties"

我还尝试将选项-Dfile.encoding=ISO-8859-15直接插入到 idea.bat 文件中(由 format.bat 调用。

这些都不起作用。

如何确保格式化程序尊重这些源文件的编码?

现在使用的命令行就像

C:\>"C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2018.2.4\bin\format.bat" -r E:\project\java style -m *.java -s e:\project\config-files\CodeStyleSettings.xml

注意:如果我在运行格式化程序之前将源文件转换为 UTF-8,格式化会按预期工作(保留德语字符)。

另一个注意事项:如果格式代码在 IDE GUI 中运行,则可以在项目选项中设置文件编码。命令行格式化程序不使用项目,因此不遵守这些设置。

我们的目标是把它变成我们自动化过程中的一个步骤,可以由任意数量的用户运行。所以我想避免更改用户特定目录(如IDE 配置目录)中的配置文件。

标签: intellij-ideaencoding

解决方案


推荐阅读