HTML validation error: Non-space characters found before DOCTYPE
Asked Answered
P

1

8

I have a blog(wordpress based). And try to validate by w3c validator one of my page. The first error is:

Line 1, Column 1: Non-space characters found without seeing a doctype first. Expected <!DOCTYPE html>.
<!DOCTYPE html><!-- HTML 5 -->

Also, DebugBar (http://www.my-debugbar.com/wiki/IETester/HomePage) agree and show two invisible chars before <! when I open the same page from "HTML Check" tab inside this tool. BUT!!

  1. This line of HTML-code come from file header.php in my wordpress theme.
  2. I download this file from my hoster to my local HDD.
  3. The first line of header.php is <!DOCTYPE html><!-- HTML 5 -->
  4. When I open header.php in RJ TextEd (just advanced text editor) it say: current encoding for header.php is UFT-8 without(!) BOM.
  5. When I open header.php in HEX-viewer I see, that byte 0 and 1 is 3c,21 - so it is exactly <!.

So, all things considered, why & where I get these "odd symbols" from?

Platino answered 8/11, 2011 at 14:29 Comment(1)
Until reading points 4 & 5, I thought the answer was quite simple. This is interesting.Istic
P
19

I found the root of problem. The general rule is:

If any(absolutely any!) file that take part in construction of the code of final HTML-page(the one to be sended to client) has encoding with BOM - final HTML-page WILL BE UTF-8-BOM. That is: you whole site should NOT contain even 1 file with BOM.

In my case I have total 1.3K files that make up my site. Only 4 files was BOMed:

  • wp-config.php (in root of site)
  • jquery.query.js (in include folder)
  • cyr-to-lat.php (in plug-in folder)
  • footer.php (in theme root folder)

And I was forced to re-save every and all of these 4 files as "UFT-8 without BOM" to get rid of "Non-space characters" validation error. When I did this (re-save files) - error is gone.

Platino answered 9/11, 2011 at 8:7 Comment(2)
Thank you. Beyond the validation error I was getting a huge blank space right above my WordPress site navigation menu which really made me struggle for days trying to identify what was causing the blank space issue...I then changed the encoding in Smultron.app for Mac and removed the UTF-8 BOM option, re-uploaded my theme's files and it was solved!!Dichloride
I love these types of validation errors :) Does anyone tested this solution with Notepad++? It will be very hard to save every new file with utf8-without-bom encoded...Cribriform

© 2022 - 2024 — McMap. All rights reserved.