Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Encoding Ant Jar任务会破坏清单编码_Encoding_Ant_Jar_Character Encoding_Manifest.mf - Fatal编程技术网

Encoding Ant Jar任务会破坏清单编码

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)

每清单编码必须为UTF-8。 在某些场景中(例如合并),ant的jar任务生成的清单被破坏,特殊字符将被双重编码

原始舱单(utf-8):

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

...
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>