首页 > 解决方案 > 在 Windows 10 上运行与在 Linux 上相同的 UTF-8 Java 文件

问题描述

我有我在 linux 操作系统中创建的 gradle 项目。它包含一些具有标准 UTF-8 编码的 java 文件。一类包含带有中欧字符的字符串。

有时我将我的第二台计算机与 Windows 10 一起使用。当我想通过 CMD 在 win10 上正确运行这个 gradle 项目时,我必须使用 ISO-8859-2 编码重新保存 java 文件并修复字符串。这很烦人,我没有找到在两个系统上运行相同的方法。

我试过:
- 环境变量中的 JAVA_TOOL_OPTIONS >> -Dfile.encoding=UTF-8
- CHCP 65001(在 CMD 中启动之前)
- Windows 语言环境设置中的 UTF-8(beta W10 功能)

同样糟糕的结果。

有什么办法吗?

标签: javalinuxwindowsencodingutf-8

解决方案


一种替代方法是将任何非标准字符编写为 Unicode 转义序列,例如\u01D1. 这将使文件在任何地方都可以工作,而无需更改本地环境。您也不必担心在错误的环境中编辑文件并使用错误的字符集保存它。但是,当然,文件中的外来字符不会那么容易辨认。

如果您的 Gradle 文件包含外来字符,请设置环境变量GRADLE_OPTS

GRADLE_OPTS="-Dfile.encoding=UTF-8"

如果您尝试使用 Gradle编译Java 源文件,您可能需要在文件中配置compileJava任务的编码build.gradle

apply plugin: 'java'

tasks.withType(JavaCompile) {
    options.encoding = 'UTF-8'
}

推荐阅读