If users enter characters that are not permitted by the charset, the page will not validate.
Using UTF-8 won't stop the problem because users may still enter non UTF-8 characters.
Also, htmlentities and htmlspecialchars are not what I am after. Sure they convert characters to HTML entities, but many of these entities are out of the character set range, causing validation errors.