utf8 без кодировки спецификации в eclipse

После некоторой головной боли я понял, что затмение с использованием заданной кодировки UTF8 (с спецификацией) вызывает ошибку. Это приводит к добавлению пробелов при использовании включения, в результате чего заголовки веб-страницы отображаются внутри тела в хроме.

т.е. на index.php без пробелов до или после, конечно

<?php include_once('header.php'); ?><body>test</body>

и header.php имея (опять же без пробелов конечно)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>test title</title>
</head>

Затем заголовок теста появляется внутри тела (не в исходном коде, а в консоли в хроме). Это вызывает пробел в верхней части страницы.

Открытие index.php и header.php в notepad++ и изменение кодировки на UTF8 без спецификации решает проблему. Как я могу исправить это в Eclipse?! Переход на notepad++ нежелателен, слишком много полезных функций в eclipse (лучшее автозаполнение, автоматическое управление версиями и т. д.).

Загадка для меня...


person scott    schedule 11.05.2012    source источник
comment
Файл -> Свойства -> Ресурс -> Кодировка текста. Однако я не вижу опции tge BOM ....   -  person DonCallisto    schedule 11.05.2012
comment
вот в чем проблема, я могу перейти на UTF8 только с BOM, что не помогает..   -  person scott    schedule 11.05.2012
comment
Посмотрите здесь   -  person DonCallisto    schedule 11.05.2012
comment
:( поэтому я застрял с преобразованием каждого файла вручную с помощью блокнота ++, затем...   -  person scott    schedule 11.05.2012


Ответы (2)


В eclipse просто измените кодировку файла на iso (щелкните правой кнопкой мыши файл -> Свойства) и удалите первые три символа спецификации, сохраните файл и снова откройте его.

person Martin Kleikamp    schedule 28.07.2015
comment
Мне было проще использовать Edit->Set Encoding. Установите его в ISO, удалите символы, сохраните, установите его обратно в UTF-8. Нет необходимости закрывать и снова открывать файл. - person Matt Cosentino; 14.05.2016

Насколько мне известно, пока в настройках вашего рабочего пространства (или типа файла) установлено значение UTF-8, новые спецификации не создаются для новых файлов, но старые спецификации (созданные в других редакторах) будут поддерживаться или даже отображается в зависимости от того, какой редактор открывает файл (редактор PHP или редактор PHP+HTML).

Если в вашем файле есть случайные спецификации, возможно, это связано с тем, что кто-то в вашей команде использует другой редактор с включенными спецификациями по умолчанию (привет, Dreamweaver!). Всякий раз, когда этот человек создает новый файл, спецификация будет вставляться и поддерживаться как вашим, так и его редактором (но если один из вас удалит ее, все будет в порядке).

Если вы разбираетесь в bash, я бы предложил использовать следующий скрипт для массового сокращения спецификаций:

sed '1 s/\xEF\xBB\xBF//' < input > output


Источник BOM Magic: http://thegreyblog.blogspot.com/2010/09/shell-script-to-find-and-remove-bom.html

person Denis 'Alpheus' Cahuk    schedule 04.03.2013
comment
Хорошее решение, bash, опубликованный на сайте, очень полезен, так как может обрабатывать много файлов в одну строку. - person рüффп; 12.12.2013