First cause of errors to display a page on a server rather than in your local machine is absolute/relative paths.
If some files cannot be found, like an external stylesheet, it is kinda obvious that it will display differently (and a lot diferently).
Second most common cause would be the server and mime/types as mentioned per eli.gundry. Another cause can be inside the server also, .htaccess (a file that can change some behaviors).
Well, supposing all links and paths are okay, and the server is serving the right mime/type, and .htaccess is not making any surprises (oh, yeah, SSI - server-side includes - can also do that), there is one option left that I can remember. File encoding.
You can script in your local machine as UTF-8 and server forces declaration to ISO 8859-1 for example, making your page display strange characters. For inspect this, use Firefox with Firebug, and check request and response headers within the tab "network".
And one last tweak about this encoding stuff is, if you code with UTF-8, pay attention to with/without BOM (Byte Order Mask). The best tool I know so far to check and fix this is notepad++, a lightweight editor that runs on Windows.