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