У меня есть сборка муравья, которая связывает мой JavaScript в один файл и затем сжимает его. Проблема состоит в том, что кодировка по умолчанию Visual Studio присоединяет BOM к каждому файлу. Как я настраиваю муравья для разделения BOM, который иначе появился бы посреди получающегося составного файла?
Мой googl'ing показал это обсуждение, которое является точной проблемой, я имею, но не предоставляю решение: http://marc.info/?l=ant-user&m=118598847927096
Кодовая точка Unicode метка порядка байтов - U+FEFF. Эта команда конкатенации удалит все символы BOM при конкатенации двух файлов:
<concat encoding="UTF-8" outputencoding="UTF-8" destfile="nobom-concat.txt">
<filelist dir="." files="bom1.txt,bom2.txt" />
<filterchain>
<deletecharacters chars="" />
</filterchain>
</concat>
Эта форма команды concat
указывает задаче декодировать файлы как символьные данные UTF-8. Я предполагаю, что UTF-8, поскольку именно в этом случае обычно возникают проблемы с Java/BOM.
В UTF-8 BOM кодируется как байты EF BB BF
. Если вам нужно, чтобы он появлялся в начале результирующего файла, вы можете использовать последующую конкатенацию, чтобы снова снабдить выходной файл префиксом BOM.
Кодированные значения для U+FEFF в других кодировках UTF перечислены здесь.