每Jar specification个清单编码必须为UTF-8。 在某些情况下(例如合并),ant的jar任务生成的清单被破坏,特殊字符将被双重编码。
原始清单(utf-8):
...
Application-Name: spécial
...
由ant的jar任务处理后的最终清单(utf-8):
...
Application-Name: spécial
...
答案 0 :(得分:1)
能够处理文件集的Jar任务允许开发人员指定原始的清单字符编码。
不幸的是,虽然强制(最终)编码是utf-8,但是在ant的jar任务中没有默认值,然后原始清单处理依赖于平台默认... Windows-1252
在我的情况下manifest(来自另一个jar)真的在utf-8
解决方案:在任务属性中指定编码
<jar destfile="final.jar" filesetmanifest="merge" manifestencoding="UTF-8">
<zipfileset src="original.jar">
[...]
</zipfileset>
</jar>
答案 1 :(得分:0)
我刚刚找到了关于NetBeans的旧$group
。
作为解决方法,我添加了manifestEncoding =&#34; $ {source.encoding}&#34; 属性为build-impl.xml中的copylibs标记