I assume you are not using the meta content-type tag in your head
element?
Sounds like you'll need to look at the encoding of your old site, and then configure Apache to send the same encoding header.
Inspect the headers to see what is being sent.
Also, for your last point, changing the ...
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
(of course, use the right charset).
... should do it.