Most Web browsers display letters, numbers, and common punctuation as literal values, but there are a number of characters that have to be coded, or else they will display as broken characters (sometimes a question mark, sometimes a shape, sometimes something totally random) on certain browser and systems.
For reliable output, you should "escape" these characters by using a code or, in some instances, a name. For example, to reliably show a lowercase 'u' with a dieresis (ü), you will need to escape it as ü or ü in the source. There's some argument to be made over whether numbers or names are "better", but I've never seem a point ... use whatever works.
Since there are quite a lot of them, I've broken them down into a few separate lists:
- Spaces and Tabs
- Reserved Characters
- Punctuation and Common Symbols
- Western Accentuation
- Stuff Not to Escape
There are far more escaped characters than I account for above - dingbats, non-roman characters (Chinese, Arabic, etc.). scientific and mathematical symbols, and the like. To deal with those, I have written an "escaper" script that will show any range you'd care to see.