символ появляется в файлах. Как их удалить?


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

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

12 73

12 ответов:

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

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

Edit: добавил -CSD вариант, согласно комментарию tchrist.

вы можете легко удалить их с помощью ВИМ, вот шаги:

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

vim file_name

2) удалить все BOM символы:

:set nobomb

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

:wq

другой способ удалить эти символы-с помощью Vim:

vim-b fileName

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

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

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

В Unix / Linux:

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

На MacOSX

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

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

На Windows

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

С помощью хвост может быть проще:

tail --bytes=+4 filename > new_filename

@tripleee решение не работает для меня. Но изменение кодировки файла на ASCII и снова на UTF-8 сделало трюк : -)

в windows вы можете использовать backported перекодировка утилиты от UnxUtils.

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

добавил \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/sublime-text-3/Packages/User / highlighter.sublime-настройки

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

:vim "[\uFEFF]" *

также нормальная команда поиска vim

/[\uFEFF]

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

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

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

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