RAn*_*s00 4 groovy character-encoding gradle
假设我的样本groovy代码build.gradle:
import org.apache.tools.ant.filters.ReplaceTokens
task doSomeFiltering(type: Copy) {
from 'some/directory'
into 'some/target'
filter(ReplaceTokens, tokens: [SAMPLE: '123abc456'])
}
Run Code Online (Sandbox Code Playgroud)
如果我在复制和过滤的文件中有一些Unicode字符,它们将在输出文件中变为系统默认编码,如果使用特定于unicode的字符并且预期文件保持unicode,则会产生一些大问题.
所以问题是:这个示例代码不遵循自定义编码选择,它总是默认为系统默认值,用于在过滤后输出文件.如何设置过滤器使用的Reader/Writer的编码?
是否可以解决此限制,例如直接调用Apache Ant?
在版本2.14之前,Gradle本身不支持指定过滤器调用的编码.从Gradle 2.14开始,您可以使用任务的filteringCharset属性Copy,如下所示:
import org.apache.tools.ant.filters.ReplaceTokens
task doSomeFiltering(type: Copy) {
from 'some/directory'
into 'some/target'
filteringCharset = 'UTF-8'
filter(ReplaceTokens, tokens: [SAMPLE: '123abc456'])
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2224 次 |
| 最近记录: |