Ant Jar任务破坏了清单编码

时间:2013-12-27 10:19:59

标签: encoding ant jar character-encoding manifest.mf

Jar specification个清单编码必须为UTF-8。 在某些情况下(例如合并),ant的jar任务生成的清单被破坏,特殊字符将被双重编码。

原始清单(utf-8):

...
Application-Name: spécial
...

由ant的jar任务处理后的最终清单(utf-8):

...
Application-Name: spécial
...

2 个答案:

答案 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标记