intellij-idea - 如何在 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 配置目录)中的配置文件。
解决方案
推荐阅读
- c# - 如何在 ASP.NET 服务器的 web.config 文件中使用 Azure Pipeline 中设置的环境变量?
- java - 列表只填充了 JSON 中的一行,应该填充了很多行
- highcharts - 样条线很弯曲,如何平滑?
- javascript - 我通过 React 前端提交请求时出现 CORS 代理错误
- javascript - 如何修复 index.html 中第一个视图底部的向下箭头图标?
- mysql - MySQL-学说:SQLSTATE [42000]:语法错误或访问冲突:1055 SELECT 列表的表达式 #1 不在 GROUP BY 子句中并包含
- python-3.x - Python:将文件从本地 PC 移动到服务器
- tensorflow - 从 Keras 构建 TensoRT 引擎时出错
- javascript - date-fns - 有没有办法获取短日期格式字符串
- android - 我在底部导航中使用了 tabview,但没有显示 recyclerview