Assegurando o utf-8 válido no PHP

Eu estou usando o PHP para lidar com texto de uma variedade de fontes. Eu não prevejo que será algo diferente de UTF-8, ISO-8859-1 ou talvez o WINDOWS-1252. Se for algo diferente de um desses, eu só preciso ter certeza de que o texto seja transformado em uma string UTF-8 válida, mesmo se os caracteres forem perdidos. A opção // TRANSLIT do iconv resolve isso? Por exemplo, esse código garantiria que uma seqüência de caracteres seja segura para inserir em um documento codificado em UTF-8 (ou banco de dados)?

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;
    }
}

questionAnswers(6)

yourAnswerToTheQuestion