I hate smart quotes. If you are looking for a way to get rid of all of the special Windows characters in your input that can screw things up, here it is in three lines of PHP:
$pattern = array(chr(128), chr(132), chr(133), chr(145), chr(146), chr(147), chr(148), chr(149), chr(150), chr(151), chr(153), chr(162), chr(166), chr(169), chr(174), chr(194), chr(226));
$replacements = array("", "", "...", "'", "'", '"', '"', "•", '–', '—', "'", "™", "...", "©", "®", "", "");
$input = str_replace($pattern, $replacements, $input);
PHP's xml_parse will choke and die if it hits any of the above characters. It won't throw a warning or anything as far as I can tell, it'll just stop processing the input as if it had received an EOF. Sanitize your input from smart quotes!