Asegurando utf-8 válido en PHP

Estoy usando PHP para manejar texto de una variedad de fuentes. No anticipo que será otra cosa que no sea UTF-8, ISO-8859-1 o quizás WINDOWS-1252. Si es algo más que uno de esos, solo necesito asegurarme de que el texto se convierta en una cadena UTF-8 válida, incluso si se pierden los caracteres. ¿La opción // TRANSLIT de iconv resuelve esto? Por ejemplo, ¿este código garantizaría que es seguro insertar una cadena en un documento (o base de datos) codificado en UTF-8?

function make_safe_for_utf8_use($string) {

    $encoding = mb_detect_encoding($string, "UTF-8,ISO-8859-1,WINDOWS-1252");

    if ($encoding != 'UTF-8') {
        return iconv($encoding, 'UTF-8//TRANSLIT', $string);
    } else {
        return $string;
    }
}

Respuestas a la pregunta(6)

Su respuesta a la pregunta