¿Cómo puedo hacer que Perl detecte secuencias UTF-8 malas?
Estoy ejecutando Perl 5.10.0 y Postgres 8.4.3, y cadenas en una base de datos, que está detrás de unDBIx :: Clase.
Estas cadenas deben estar en UTF-8 y, por lo tanto, mi base de datos se está ejecutando en UTF-8. Desafortunadamente, algunas de estas cadenas son malas, contienen UTF-8 malformado, por lo que cuando lo ejecuto obtengo una excepción
DBI Exception: DBD::Pg::st execute failed: ERROR: invalid byte sequence for encoding "UTF8": 0xb5
Pensé que podría simplemente ignorar los no válidos y preocuparme por el UTF-8 mal formado más tarde, por lo que al usar este código, debería marcar e ignorar los títulos malos.
if(not utf8::valid($title)){
$title="Invalid UTF-8";
}
$data->title($title);
$data->update();
Sin embargo, Perl parece pensar que las cadenas son válidas, pero aún arroja las excepciones.
¿Cómo puedo hacer que Perl detecte el UTF-8 malo?