2010-04-30 29 views
6

Tengo una compilación ant que concatena mi javascript en un archivo y luego lo comprime. El problema es que la codificación predeterminada de Visual Studio adjunta una lista de materiales a cada archivo. ¿Cómo configuro una hormiga para eliminar las listas de materiales que de otro modo aparecerían en el medio del archivo concatenado resultante?¿Conseguir hormigas concat para ignorar las de la BOM?

Mi googl'ing reveló esta discusión, que es exactamente el problema que estoy teniendo, pero no proporciona una solución: http://marc.info/?l=ant-user&m=118598847927096

Respuesta

12

El punto de código Unicode U + byte order mark es FEFF. Este comando concatenación se tira a cabo todos los caracteres BOM al concatenar dos archivos:

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

Esta forma del comando concat cuenta la tarea de decodificar los archivos como datos de caracteres UTF-8. Estoy asumiendo UTF-8 ya que esto es generalmente donde ocurren los problemas de Java/BOM.

En UTF-8, la lista de materiales se codifica como los bytes EF BB BF. Si necesita que aparezca al comienzo del archivo resultante, puede usar una concatenación posterior para volver a agregar al prefijo el archivo de salida con una lista de materiales.

Los valores codificados para U + FEFF en otras codificaciones UTF se enumeran here.

Cuestiones relacionadas