Está introduciendo datos de caracteres dañados en la función o no especifica la codificación correcta.
Tuve este problema hace un tiempo, el comportamiento anterior (antes de PHP 5.2.7 creo) era devolver la cadena a pesar de la corrupción, pero desde esa versión arrojará este error en su lugar.
Mi solución consistía en escribir una secuencia de comandos para alimentar mis cadenas a través del iconv utilizando el modificador // IGNORE para eliminar datos dañados.
(Tuvimos una base de datos dañada que tenía algunas cadenas en UTF-8, algunas en latin-1 generalmente con tipos de caracteres incorrectamente definidos en las columnas).
(Mirando el comentario a la respuesta de Tatu, me gustaría empezar por mirar (y jugando con) el contenido de la variable $ charset.
línea de mensaje 207 por favor –