2010-04-30 6 views
6

J'ai une construction ant qui concatène mon javascript dans un fichier, puis le compresse. Le problème est que l'encodage par défaut de Visual Studio attache une nomenclature à chaque fichier. Comment puis-je configurer ant pour supprimer les nomenclatures qui apparaîtraient autrement au milieu du fichier concaténé résultant?Obtenir ant concat pour ignorer les nomenclatures '?

Mon googl'ing a révélé cette discussion qui est le problème exact que je vais avoir, mais ne fournit pas une solution: http://marc.info/?l=ant-user&m=118598847927096

Répondre

12

Le codepoint Unicode byte order mark est U + FEFF. Cette commande de concaténation va dépouiller tous les caractères de la nomenclature lorsque concaténer deux fichiers:

<concat encoding="UTF-8" outputencoding="UTF-8" destfile="nobom-concat.txt"> 
    <filelist dir="." files="bom1.txt,bom2.txt" /> 
    <filterchain> 
    <deletecharacters chars="&#xFEFF;" /> 
    </filterchain> 
</concat> 

Cette forme de la commande concat indique la tâche de décoder les fichiers sous forme de données de caractères UTF-8. Je suppose que UTF-8 car c'est habituellement où les problèmes de Java/BOM se produisent.

En UTF-8, la nomenclature est codée en tant qu'octets EF BB BF. Si vous aviez besoin qu'il apparaisse au début du fichier résultant, vous pouvez utiliser une concaténation suivante pour préfixer le fichier de sortie avec une nomenclature à nouveau.

Les valeurs codées pour U + FEFF dans d'autres codages UTF sont répertoriées here.