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