Intereting Posts
Перемещение элементов DOM под фиксированной навигационной панелью Возьмите значение innerHTML с почтовым методом PHP отключенный атрибут не работает Как показать div на парящем изображении? TextView с цветом фона и межстрочным интервалом Разница между элементами блока HTML и свойствами блока отображения CSS Используют ли атрибуты пользовательских данных HTML5 «работать» в IE 6? Должен ли я использовать тег для значков вместо ? Измените размер родительского div, чтобы соответствовать абсолютной позиционной высоте дочернего div Показывать данные, извлеченные из базы данных, на основе ввода и отображения формы html на странице html Динамическое создание элементов с помощью javascript Элементы CSS select с частичным идентификатором Как я могу открыть результат формы в новом окне? Подтверждение формы JavaScript – подтверждение или отмена отправки Как подсчитать СЕССИИ, чтобы отобразить общее количество зарегистрированных пользователей на сайте

Как исправить «Байт-код заказа, найденный в файле UTF-8»

У меня есть страница xhtml, проверяющая под строгим doctype xhtml, но я получаю это предупреждение, которое я пытаюсь понять, и исправляю.

Просто, как мне найти этот ошибочный «знак байтового заказа». Я редактирую файл с помощью Visual Studio – не уверен, что это помогает.

Предупреждающий знак байта-байта найден в файле UTF-8.

Известно, что символ кодировки байтов Юникода (BOM) в кодированных файлах UTF-8 вызывает проблемы для некоторых текстовых редакторов и старых браузеров. Вы можете захотеть избежать его использования до тех пор, пока он не будет лучше поддержан.

Часть местоположения вашего вопроса проста: знак байта (BOM) будет в самом начале файла.

При редактировании файла перейдите в File | Advanced Save Options... File | Advanced Save Options... и вы должны найти раскрывающийся список «Кодировка» (вместе с раскрывающимся списком «Линейные окончания»). Вероятно, он настроен на использование «Unicode (UTF-8 с подписью) – Codepage 65001». Если вы прокрутите список вниз, вы можете найти «Unicode (UTF-8 без подписи) – Codepage 65001». Это должно сделать это (если хотите). Некоторые системы могут быть смущены спецификацией в файле UTF-8, как указывает предупреждение.

См. Также эту заметку в FAQ сайта Unicode о файлах спецификации и UTF-8. Он не имеет никакой функции, кроме как вызывать, что файл является, по сути, UTF-8. В частности, он не влияет на порядок байтов (основная причина имеет BOM), поскольку порядок байтов UTF-8 фиксирован.

Вот как я исправил это:

  1. Загрузите и установите Notepad ++

  2. Откройте файл с помощью Notepad ++

  3. В меню выберите «Кодирование» и установите «Кодировать в UTF-8 без спецификации»,

  4. Сохраните файл, и спецификация исчезнет.

В Linux :

Откройте файл с Geany .

В меню « Документ » снимите флажок « Записать Юникодную спецификацию ».

Сохраните файл.

Спецификация иногда находится в тексте INSIDE, а не в начале – если файл был собран некоторое время php из других файлов, используя, например, include_once () . Чтобы удалить его, удалите область между по крайней мере одним символом перед спецификацией и по крайней мере одним символом после спецификации (на всякий случай). Положение спецификации можно найти в F12 Developer Tools Internet Explorer и, возможно, в Edge. Он визуализируется как черный бриллиант / ромб .

Visual Studio и WebMatrix могут сохранять файлы с или без подписи (в начале).

BOM вызывает ошибки во время проверки ( https://validator.w3.org/#validate_by_upload ) или в консолях – можно рассматривать как осиротевший элемент без , когда, по-видимому, присутствует!:

Ошибка: Stray end tag head.

как второй , когда существует только один и все правильно:

Ошибка. Начните тело тега, но элемент того же типа уже открыт.

И весь документ можно увидеть без DOCTYPE, когда BOM или две BOMS занимают первую строку, а DOCTYPE – во второй строке, с сообщением, аналогичным этому:

Ошибка: непространственные символы найдены, не видя сначала doctype. Ожидается, например, < ! DOCTYPE html>.

Ошибка: головке элемента отсутствует необходимый экземпляр дочернего элемента.

Ошибка: блуждающий doctype.

Ошибка: Stray start tag html.

Ошибка: Stray start tag head.

Ошибка: имя атрибута не разрешено в метатете элементов в этой точке.

Ошибка. Элемент meta отсутствует один или несколько из следующих атрибутов: itemprop, свойство.

Ошибка: Атрибут http-equiv не разрешен для элемента meta в этой точке.

Ошибка. Элемент meta отсутствует один или несколько из следующих атрибутов: itemprop, свойство.

Ошибка: имя атрибута не разрешено в метатете элементов в этой точке.

Ошибка. Элемент meta отсутствует один или несколько из следующих атрибутов: itemprop, свойство.

Ошибка: в элементе отсутствует требуемое свойство атрибута.

Ошибка: имя атрибута не разрешено в метатете элементов в этой точке.

Ошибка. Элемент meta отсутствует один или несколько из следующих атрибутов: itemprop, свойство.

Ошибка: имя атрибута не разрешено в метатете элементов в этой точке.

Ошибка. Элемент meta отсутствует один или несколько из следующих атрибутов: itemprop, свойство.

Ошибка: имя атрибута не разрешено в метатете элементов в этой точке.

Ошибка. Элемент meta отсутствует один или несколько из следующих атрибутов: itemprop, свойство.

Ошибка: заголовок элемента не разрешен как дочерний элемент тела элемента в этом контексте. (Подавление дальнейших ошибок из этого поддерева.)

Ошибка: стиль элемента не разрешен как дочерний элемент тела элемента в этом контексте. (Подавление дальнейших ошибок из этого поддерева.)

Ошибка: Stray end tag head.

Ошибка. Начните тело тега, но элемент того же типа уже открыт.

Неустранимая ошибка: невозможно восстановить после последней ошибки. Любые дальнейшие ошибки будут проигнорированы.

( https://validator.w3.org/#validate_by_uri )

И stream сообщений в консоли разработчика IE F12:

HTML1527: ожидается DOCTYPE. Рассмотрим добавление допустимого типа HTML5: «< ! DOCTYPE html>».

HTML1502: Неожиданный DOCTYPE. Допускается только один DOCTYPE, и он должен встречаться перед любыми элементами.

HTML1513: добавлен тег ““. Для каждого документа должен существовать только один тег .

HTML1503: Неожиданный начальный тег. HTML1512: Непревзойденный конечный тег.

Все, вызванное одной спецификацией в начале. И отладчик показывает один черный ромб в первой строке.

Файлы, сохраненные с сигнатурой, но не собранные php, не вызывают таких ошибок, и черные алмазы не допустимы в отладчике IE. Таким образом, возможно, PHP преобразует спецификацию. Кажется, что основной файл php должен быть сохранен с подписью, чтобы увидеть это.

Эти странные символы встречаются в начале и / или на границах файлов, объединенных с include_once (), и не отображаются, когда файлы сохраняются ранее без подписи. Вот почему он указывает на участие в BOM.

Я заметил это все позавчера, когда начал конвертировать мой сайт в HTML5 и проверял.

BOM также может создать небольшой отступ в начале строки. Два файла, содержащие идентичный текст, но один с отступом.