Some of the standard keyboard characters are reserved for use by the HTML processors and must be encoded to be displayed on the screen properly.  Don't forget the leading ampersand (&) and trailing semicolon (;) for these codes:

 
&    (&)  Ampersand
&lt;     (<)  Less Than
&gt;     (>)  Greater Than
&quot;   (")  Quote

Many other characters are not from the standard keyboard and can only be displayed by indicating their presence with codes.  These also need the ampersand (&) and semicolon (;) to work:

 
&nbsp;   ( )  Non-breaking Space
&szlig;  (ß)
&#8364;  (€)  Euro

The best list that I've found so far is at Character entity references in HTML 4.0.  Or you might wish to check out the Unicode list.