Sicherstellen, dass utf-8 in PHP gültig ist

Ich verwende PHP, um Text aus verschiedenen Quellen zu verarbeiten. Ich gehe nicht davon aus, dass es etwas anderes als UTF-8, ISO-8859-1 oder vielleicht WINDOWS-1252 sein wird. Wenn es sich um etwas anderes handelt, muss ich nur sicherstellen, dass der Text in eine gültige UTF-8-Zeichenfolge umgewandelt wird, auch wenn Zeichen verloren gehen. Behebt die Option // TRANSLIT von iconv das Problem? Würde dieser Code beispielsweise sicherstellen, dass eine Zeichenfolge sicher in ein UTF-8-codiertes Dokument (oder eine Datenbank) eingefügt werden kann?

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

Antworten auf die Frage(6)

Ihre Antwort auf die Frage