【问题标题】:IntelliJ uses wrong encodingIntelliJ 使用错误的编码
【发布时间】:2018-01-11 12:19:58
【问题描述】:

我正在使用 intelliJ 2017.3 CE,我有一个奇怪的行为,尽管我尝试了我发现的关于该主题的所有内容。

为简单起见,我提取了问题的根本原因,IntelliJ 在我的案例中没有使用所需的编码 UTF-8。这是我的简单课程:

public static void main(String[] args) {
    System.out.println("äüö");
}

运行此类会导致以下输出:

13:03:47: Executing task 'StringTest2.main()'...
:core:compileJava UP-TO-DATE
:core:processResources UP-TO-DATE
:core:classes UP-TO-DATE
:core:compileTestJava
:core:processTestResources UP-TO-DATE
:core:testClasses
:core:StringTest2.main()
äüö


BUILD SUCCESSFUL in 2s
5 actionable tasks: 2 executed, 3 up-to-date
13:03:49: Task execution finished 'StringTest2.main()'.

这里可以看到文件的编码

这是我的 intellij 安装的设置

我尝试了什么:

  • 添加到我的 gradle.properties:systemProp.file.encoding=utf-8
  • 为我定义 jvm 设置的那个类创建了一个运行配置:-Dfile.encoding=utf-8
  • 执行了一个测试用例,这个问题最初是从命令行 (gradle) 发生的,但也发生了错误
  • 使用 intellij 在另一台电脑 (mac) 上测试了该课程,并按预期退出。

我不知道我还能尝试什么。

【问题讨论】:

  • 某处您的 UTF-8 字符串已转换为 ISO-8859-1 编码。您的控制台编码可能是 ISO-8859-1

标签: java intellij-idea gradle


【解决方案1】:

The console still uses the platform encoding.

使用

-Dconsole.encoding=UTF-8

【讨论】:

  • 我已将此添加到分片构建过程 VM 选项中,但它不会更改输出。我也尝试将其作为运行配置的 JVM 选项,但也没有任何变化。
  • 试试"\u00E4\u00F6\u00FC"。如果这可行,那么编辑器确实使用 UTF-8(我们已经知道),但编译器 javac 使用平台编码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-07
  • 1970-01-01
  • 2011-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多