сложно что-то сказать, не видя исходной строки... но я бы попобовал тогда так:
$str = iconv("UTF-8", "ISO-8859-1//IGNORE", $str); // сохраняем latin1 набор символов, т.е. US-ASCII + всякие умляуты... Остальные символы выбрасываются.
echo iconv("ISO-8859-1", "US-ASCII//TRANSLIT", $str); // делаем транслитерацию