Because there are many badly written web browsers out there, and although there are specifications that explain how they're generally supposed to behave, a significant number of them don't behave correctly, or have abnormal behavior on edge cases.

Basically, some browsers look in the HTTP header, others look in the HTML, and no one has the time to test every permutation of their generated pages with even a fraction of the browsers out there. (warning -- the evolt link is down right now, or blocked from my work ... I'm just putting it in with the chance that it comes back up)

As for why there are so many encodings -- it's because of the old days of 8 bit computing, when you only had 256 different characters that could be stored, and so you couldn't have a character set with both all latin and all cyrillic characters. (and eastern languages? not a chance). Although there are multiple UTF standards, it's typically best to move towards one of them. If you're using primarily latin languages, UTF8 will typically take up less space.


In reply to Re: Header, start_html and encodings by jhourcle
in thread Header, start_html and encodings by Nik

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.