如何使用 Gradle 自动转义 Java 属性文件中的 unicode 字符?

Posted

技术标签:

【中文标题】如何使用 Gradle 自动转义 Java 属性文件中的 unicode 字符?【英文标题】:How to automatically escape unicode characters in Java property files using Gradle? 【发布时间】:2016-10-10 08:03:48 【问题描述】:

我正在翻译 Java 应用程序,方法是使用 ResourceBundle 和各种 *.properties 文件。现在我喜欢有一个 Gradle 任务或者想要修改一个任务来自动转义任何 unicode 字符,方法是将它替换为它的 ASCII 表示,一些就像 Java 的 native2ascii 工具一样。

这是我目前对构建文件所做的工作,但输出仍未转义

import org.apache.tools.ant.filters.EscapeUnicode

tasks.withType(ProcessResources) 
    filesMatching('**/*.properties') 
        println "\t-> $it"
        filter EscapeUnicode
    

感谢您的帮助。

【问题讨论】:

【参考方案1】:

您可以通过这种方式为属性文件提供额外的副本规范:

import org.apache.tools.ant.filters.EscapeUnicode
tasks.withType(ProcessResources).each  task ->
    task.from(task.getSource()) 
        include '**/*.properties'
        filter(EscapeUnicode)
    

【讨论】:

这是救命稻草。

以上是关于如何使用 Gradle 自动转义 Java 属性文件中的 unicode 字符?的主要内容,如果未能解决你的问题,请参考以下文章

配置gradle :将properties文件转换为扩展属性

如何在 build.gradle 文件中设置属性以在 Java 中访问该属性

java如何将特殊字符转义

【求助】Dom4j 生成xml,节点增加属性时,属性值中有特殊字符,如何做到不转义

具有 gradle 额外属性的自动增量版本代码

gradle自动下载项目跑不起来