Zapewnienie poprawnego utf-8 w PHP

Używam PHP do obsługi tekstu z różnych źródeł. Nie przewiduję, że będzie to coś innego niż UTF-8, ISO-8859-1, a może WINDOWS-1252. Jeśli jest to coś innego niż jeden, po prostu muszę się upewnić, że tekst zostanie przekształcony w prawidłowy ciąg UTF-8, nawet jeśli znaki zostaną utracone. Czy opcja // TRANSLIT iconv rozwiązuje ten problem? Na przykład, czy ten kod zapewni, że łańcuch będzie bezpieczny do wstawienia do dokumentu zakodowanego w UTF-8 (lub bazy danych)?

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