Question mark on special chars

WordPress sends all HTML content encoded as UTF-8. If you save a file in a single-byte encoding, like Windows-1252¹, you create invalid characters for UTF-8. These are displayed with a replacement character, usually (but not necessary) as a question mark in a black diamond.

Always use UTF-8 for everything. Do not use a BOM (byte order mark), because this is treated as a printable character by PHP, and you will get the famous Headers already sent error.

¹ ANSI is not a real encoding. It resolves to your operating system’s locale encoding. This term should be forbidden in all text editors.

tech