Most of the time, it happens when the character set differs between your AC instance and your template delivery and/or HTML charset declaration.
For instance if your database/AC instance uses Win1252 or ISO8859P13 (or some tables/columns) while the html template/delivery is made with utf8 encoding/charset. Or vice&versa for charsets.
In order to be sure, you can check real encoding of your html code by using an editor as Notepad++ or Ultraedit or other editor tools with their encoding tool; and either convert the html code or/and check coherence with your AC.
This is a good reference for HTML encoded alternatives, which you'll want to make sure you're using in your source code for special characters rather than copying from another program or letting a WYSIWYG auto-encode for you: HTML Codes - Table of ascii characters and symbols