В файле UTF-8 обнаружена метка порядка байтов. Ошибка проверки W3C

Я создал веб-сайт, который соответствует строгому XHTML и проходит проверку, но валидатор W3C сообщает мне, что у меня есть примечание (ошибка):

В файле UTF-8 обнаружена метка порядка байтов.

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

Но в моем файле нет спецификации. Это прямой XHTML, сделанный в VS.

Сервер добавляет это? Как мне избавиться от ошибки?

Это важно, так как это мешает семантическому извлечению. http://www.w3.org/2003/12/semantic-extractor.html


person Karl Wilson    schedule 19.06.2012    source источник


Ответы (2)


Валидатор разметки W3C не указывает спецификацию в UTF-8 как ошибку; в противном случае это было бы ошибкой, поскольку спецификация разрешена в начале данных UTF-8. Выдает предупреждение.

Предупреждение серьезно устарело. В соответствующих браузерах проблем не наблюдается уже много лет. Напротив, спецификацию следует рассматривать как полезную, поскольку, например, если файл сохраняется локально (и, таким образом, заголовки HTTP теряются, спецификация в формате UTF-8 позволяет браузерам с практической уверенностью сделать вывод, что документ закодирован в UTF-8.

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

Возможно, сервер добавляет спецификацию или ваш инструмент разработки добавляет ее. В любом случае это следует рассматривать как полезное, а не как проблему.

person Jukka K. Korpela    schedule 19.06.2012

У вас есть спецификация (EF BB BF) на вашем ресурсе. Подумайте об удалении, возможно, с помощью какого-нибудь шестнадцатеричного редактора. Как удалить символ спецификации из моего xml файл

person Alexander Pavlov    schedule 19.06.2012
comment
где, как ты это увидел, не могу. круто здорово. Я не знаю, как его удалить, так как не вижу. Я попробовал просмотреть исходный код. - person Karl Wilson; 19.06.2012
comment
Спецификация не предназначена для отображения и, следовательно, не отображается в обычных средствах просмотра / редактировании текста. Используйте для этого шестнадцатеричный просмотрщик. - person Alexander Pavlov; 19.06.2012
comment
Пожалуйста, какой хороший зритель можно использовать в окнах и откуда взялись хартии, это визуальная студия или веб-сервер. - person Karl Wilson; 19.06.2012
comment
Я нашел хороший редактор для просмотра. Большое спасибо за Вашу помощь. любая идея, как они туда попадают. - person Karl Wilson; 19.06.2012
comment
Они написаны текстовым редактором и служат для явного указания любому программному обеспечению, читающему файл, о его кодировке (UTF-8 в вашем случае). - person Alexander Pavlov; 19.06.2012
comment
Его безумное семантическое извлечение является ключом к хорошему кодированию, я очень тщательно выстраиваю свою структуру. Мне нужны поисковые системы, чтобы понимать меня больше, чем что-либо. Большое вам спасибо за вашу помощь. Я надеюсь, что у вас будет хороший день, поскольку я вижу, что вы отвечаете на множество вопросов, и такие люди, как вы, очень сильно помогают. - person Karl Wilson; 19.06.2012
comment
Пожалуйста. Увы, любое программное обеспечение, которое понимает UTF-8, также должно правильно анализировать спецификацию, а если они этого не делают, вы должны сообщить об ошибке :) - person Alexander Pavlov; 19.06.2012
comment
Проблема со спецификацией в HTML обычно заключается в том, что она появляется перед вашим DOCTYPE, таким образом добавляя некоторые символы в верхнем левом углу вашей страницы и, возможно, испортив кодировку и запуская режим Quirks в старом IE. Чтобы удалить его, вы можете использовать Notepad ++; затем в строке меню выберите Кодировка- ›Преобразовать в UTF-8 (без спецификации). - person avramov; 24.06.2012