Чистые файлы исходного кода невидимых символов
У меня есть странная проблема: где-то в моем коде HTML/PHP есть скрытый невидимый персонаж, от которого я не могу избавиться. Скопировав его из Firebug и преобразовывая его, я определил его как 
или "Zero width no-break space". Он отображается как не пустой текст node на моем веб-сайте и вызывает серьезную проблему с макетом.
Проблема в том, что я не могу избавиться от нее. Я не могу видеть это в своих файлах, даже когда вы поворачиваете Invisibles (d'uh). Кажется, я не могу найти его, ни один инструмент поиска, похоже, не заберет его. Я переписал свой код там, где он может быть, но он, кажется, находится где-то глубже в одном из файлов фреймворка.
Любые хорошие инструменты для поиска символов по коду через файлы или что-то в этом роде? (Mac OS X)
Ответы
Ответ 1
Вы не получите символ в редакторе, потому что вы не можете найти его в текстовых редакторах. #FEFF или #FFFE - это так называемые байтовые байты. Это изобретение Microsoft, которое нужно указать в файле Unicode, в котором хранятся многобайтовые символы.
Чтобы избавиться от него, сообщите редактору сохранить файл как ANSI/ISO-8859 или Unicode без спецификации. Если ваш редактор не может этого сделать, вам придется либо переключать редакторы (к сожалению), либо использовать какой-то инструмент усечения, например, шестнадцатеричный редактор, который позволяет вам увидеть, как файл действительно выглядит.
В googleing, кажется, что TextWrangler имеет режим "UTF-8, no BOM". В противном случае, если вам удобно с терминалом, вы можете использовать Vim:
:set nobomb
и сохраните файл. Presto!
Символы всегда очень сначала в текстовом файле. Редакторы с поддержкой спецификации не будут, как я уже упоминал, показать это вам вообще.
Приветствия,
Ответ 2
Если вы используете Textmate, и проблема находится в файле UTF-8:
- Откройте файл
- Файл > Повторно открыть с кодировкой > ISO-8859-1 (Latin1)
- Вы должны иметь возможность видеть и удалять первый символ в файле
- Файл > Сохранить
- Файл > Повторно открыть с кодировкой > UTF8
- Файл > Сохранить
Он работает для меня каждый раз.
Ответ 3
Это символ byte-order. В Mac OS X: откройте окно терминала, перейдите к своим источникам и введите:
grep -rn $'\xFEFF' *
Он покажет вам номера строк и имена файлов, содержащие спецификацию.
Ответ 4
Я не пользователь Mac, но мой общий совет: когда все остальное не работает, используйте hex editor. Очень полезно в таких случаях.
См. "Сравнение шестимерных редакторов" в WikiPedia.
Ответ 5
используйте блокнот плюс плюс.. есть возможность показать все символы
Ответ 6
vi или vim будут отображаться любые символы, отличные от EOL.
Ответ 7
Я уверен, Textwrangler сделает это.
EDIT: Ссылка VersionTracker, поскольку сайт Bare Bones, похоже, снова опустился.
Ответ 8
- Вставить содержимое в Notepad ++
- В кодировке меню → Преобразование в ANSI
И тебе хорошо идти.