Заставить муравья concat игнорировать BOM?

У меня есть сборка муравья, которая связывает мой JavaScript в один файл и затем сжимает его. Проблема состоит в том, что кодировка по умолчанию Visual Studio присоединяет BOM к каждому файлу. Как я настраиваю муравья для разделения BOM, который иначе появился бы посреди получающегося составного файла?

Мой googl'ing показал это обсуждение, которое является точной проблемой, я имею, но не предоставляю решение: http://marc.info/?l=ant-user&m=118598847927096

7
задан Breck Fresen 30 April 2010 в 06:37
поделиться

1 ответ

Кодовая точка 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="&#xFEFF;" />
  </filterchain>
</concat>

Эта форма команды concat указывает задаче декодировать файлы как символьные данные UTF-8. Я предполагаю, что UTF-8, поскольку именно в этом случае обычно возникают проблемы с Java/BOM.

В UTF-8 BOM кодируется как байты EF BB BF. Если вам нужно, чтобы он появлялся в начале результирующего файла, вы можете использовать последующую конкатенацию, чтобы снова снабдить выходной файл префиксом BOM.

Кодированные значения для U+FEFF в других кодировках UTF перечислены здесь.

13
ответ дан 6 December 2019 в 19:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: