Quite a few of these can be set in the HTTP headers as well, but people editing templates don't always have access or know how to do it.
BTW; not all UTF-8 text has a byte-order mark, I would say most of them don't.
BTW; not all UTF-8 text has a byte-order mark, I would say most of them don't.
Guessing between valid UTF-8 and Latin-1 is only ever ambiguous when there are multiple non-ASCII characters in a row and all those sequences are made up of a lead byte with the correct number of trailing bytes. How often is that a problem for you in practice?
What I don't get is why so many say it is required in the head, even when you manage to set the header.