Vscode / Java扩展/测试面板:如何指定运行时file.encoding

问题描述 投票:0回答:1

通过 Visual Studio Code 的测试面板运行 Java JUnit5 测试时,我尝试将 file.encoding 设置为 iso8859-15。

查阅文档后,我应用了以下设置:

"java.test.config": { "name": "MonConfig", // "vmargs": [ //     "-Dfile.encoding=iso8859-15" // ], "vmargs": [ "-Dfile.encoding=iso8859-15" ], "env": { "file.encoding": "iso8859-15" }, "classPaths": [ "${workspaceFolder}/agriscope-core/src/main/java", "${workspaceFolder}/agriscope-core/src/test/java" ] },

虽然可以识别类路径设置,但在使用测试面板中的“启动器”时,我遇到了文件编码保持设置为 UTF-8 的问题。

似乎有什么东西覆盖了指定的文件编码。值得注意的是,该项目是一个 Gradle 项目,它成功地将 file.encoding 强制为 iso8859-15。当我直接使用 Gradle 运行测试时,没有任何问题。

如果您能在使用测试面板启动器时解决预期文件编码与观察到的文件编码之间的差异,我将不胜感激。

谢谢你。

我尝试在 java.test.config 中强制文件编码。

接下来我尝试查看 java 服务器日志文件,看看是否有问题。

我看到测试面板没有直接使用gradle,而是自己启动测试。

java visual-studio-code testing encoding
1个回答
0
投票

维护人员在您的问题单中回复说,导致此问题的代码似乎位于 https://github.com/microsoft/vscode-java-debug/blob/792249434fa8265a2b40d08956cc1b9dbe46e474/src/configurationProvider.ts#L362-L363

// VS Code internal console uses UTF-8 to display output by default.
if (config.console === "internalConsole" && !config.encoding) {
  config.encoding = "UTF-8";
}

config
指的是同名设置。该维护者目前正在调查这是否是故意的。请耐心等待,如果是错误,将会修复。

© www.soinside.com 2019 - 2024. All rights reserved.