Encoding Ant Jar任务会破坏清单编码
每清单编码必须为UTF-8。 在某些场景中(例如合并),ant的jar任务生成的清单被破坏,特殊字符将被双重编码 原始舱单(utf-8): ant的jar任务处理后的最终清单(utf-8):Encoding Ant Jar任务会破坏清单编码,encoding,ant,jar,character-encoding,manifest.mf,Encoding,Ant,Jar,Character Encoding,Manifest.mf,每清单编码必须为UTF-8。 在某些场景中(例如合并),ant的jar任务生成的清单被破坏,特殊字符将被双重编码 原始舱单(utf-8): ant的jar任务处理后的最终清单(utf-8): ... Application-Name: spécial ... 能够处理文件集的Jar任务允许开发人员指定原始清单字符编码 不幸的是,尽管强制(最终)编码是utf-8,但ant的jar任务中没有默认值,因此原始清单处理依赖于平台默认值Windows-1252在我的例子中,原始清单(来自另一个jar)
...
Application-Name: spécial
...
能够处理文件集的Jar任务允许开发人员指定原始清单字符编码 不幸的是,尽管强制(最终)编码是utf-8,但ant的jar任务中没有默认值,因此原始清单处理依赖于平台默认值
Windows-1252
在我的例子中,原始清单(来自另一个jar)确实在utf-8
解决方案:在任务属性中指定编码
<jar destfile="final.jar" filesetmanifest="merge" manifestencoding="UTF-8">
<zipfileset src="original.jar">
[...]
</zipfileset>
</jar>
[...]
我刚刚找到了我以前对NetBeans的看法
作为一种解决方法,我添加了manifestEncoding=“${source.encoding}”
属性设置为build-impl.xml中的copylibs标记
<jar destfile="final.jar" filesetmanifest="merge" manifestencoding="UTF-8">
<zipfileset src="original.jar">
[...]
</zipfileset>
</jar>