使用 Gradle 进行转码

Transcoding with Gradle

我的 build.gradle 文件从模板为我的 Java 项目生成 UNIX 和 Windows 启动器脚本。 模板是 UTF-8 编码的,生成的脚本也是 UTF-8 编码的。在普遍支持 UTF-8 的 Linux 上这不是问题,但是 Windows 在 cmd.exe 终端 window 中显示非 Latin-1 字符时存在一些问题。阅读 后,我得出一个结论,将生成的 UTF-8 脚本转换为 cp1250(在我的例子中)会在显示匈牙利语文本时省去很多麻烦。但是我不知道如何将 UTF-8 文件转换为其他代码页(查看副本,但没有找到指定输出编码的方法。)

只需在构建文件中使用 FileUtils from Apache Commons IO

import org.apache.commons.io.FileUtils

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath("commons-io:commons-io:2.8.0")
    }
}

然后,在脚本的相关部分,生成启动器脚本的地方:

File f =  file('/path/to/windows-launcher')
// Reading the content as UTF-8
String content = FileUtils.readFileToString(f, 'UTF-8')
// Rewriting the file as cp1250
FileUtils.write(f, content, "cp1250")