<0xEF, 0xBB, 0xBF>, отображаемый в файлах. Как их удалить?

Я делаю сжатие файлов JavaScript, и компрессор жалуется, что у моих файлов есть символ .

Как я могу найти эти символы и удалить их?

Ответ 1

perl -pi~ -CSD -e 's/^\x{fffe}//' file1.js path/to/file2.js

Я бы предположил, что инструмент сломается, если у вас есть другие utf-8 в ваших файлах, но если нет, возможно, это обходное решение может вам помочь. (Непроверенный...)

Изменить: добавлена ​​опция -CSD в соответствии с комментарием tchrist.

Ответ 2

Вы можете легко удалить их с помощью vim, выполните следующие действия:

1) В вашем терминале откройте файл с помощью vim:

vim file_name

2) Удалите все спецификации:

:set nobomb

3) Сохраните файл:

:wq

Ответ 3

Другой способ удаления этих символов - с помощью Vim:

vim -b имя_файла

Теперь эти "скрытые" символы видны (<feff>) и могут быть удалены.

Ответ 4

Спасибо за предыдущие ответы, здесь вариант sed (1) на всякий случай:

sed '1s/^\xEF\xBB\xBF//'

Ответ 5

В Unix/Linux:

sed 's/\xEF\xBB\xBF//' < inputfile > outputfile

В MacOSX

sed $'s/\xEF\xBB\xBF//' < inputfile > outputfile

Обратите внимание на $after sed для mac.

В Windows

Существует Super Sed расширенная версия sed. Для Windows это автономный .exe, предназначенный для запуска из командной строки.

Ответ 6

Использование хвоста может быть проще:

tail --bytes=+4 filename > new_filename

Ответ 7

Решение

Ответ 8

В Windows вы можете использовать утилиту recode с backported из UnxUtils.

Ответ 9

В Sublime Text вы можете установить Highlighter package а затем настройте регулярное выражение в пользовательских настройках.

Здесь я добавил \uFEFF в конец свойства highlighter_regex.

{
    "highlighter_enabled": true,
    "highlighter_regex": "(\t+ +)|( +\t+)|[\u2026\u2018\u2019\u201c\u201d\u2013\u2014\uFEFF]|[\t ]+$",
    "highlighter_scope_name": "invalid",
    "highlighter_max_file_size": 1048576,
    "highlighter_delay": 3000
}

Чтобы перезаписать настройки пакета по умолчанию, поместите здесь файл:

~/.config/возвышенный-текст-3/Пакеты/User/highlighter.sublime-настройка

Ответ 10

Я использовал vimgrep для этого

:vim "[\uFEFF]" *

также обычная команда поиска vim

/[\uFEFF]

Ответ 11

Команда 'file' показывает, имеется ли спецификация:

Например: "Файл myfile.xml" отображает: "Документ XML 1.0, текст Юникода UTF-8 (с BOM), с очень длинными строками, с терминаторами строк CRLF"

dos2unix удалит спецификацию.

Ответ 12

Сохраните файл без подписи кода.

Ответ 13

Я предлагаю использовать инструмент "dos2unix", пожалуйста, проверьте, чтобы запустить dos2unix./thefile.js.

При необходимости попробуйте использовать что-то вроде этого для нескольких файлов:

for x in $(find . -type f -exec echo {} +); do dos2unix $x ; done

Мое почтение.