Utf8 без кодирования BOM в eclipse

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

т. на 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 в блокноте ++ и изменение кодировки в UTF8 без спецификации решения этой проблемы. Как я могу исправить это в Eclipse?! Переключение на блокнот ++ нежелательно, слишком много хороших функций в eclipse, которые полезны (лучше автозаполнение, автоматическое управление версиями и т.д.).

Тайна для меня...

Ответ 1

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

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

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

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


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

Ответ 2

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