Как я могу заставить Perl обнаруживать плохие последовательности UTF-8?

Я использую Perl 5.10.0 и Postgres 8.4.3, и строки в базу данных, которая находится заDBIx :: Class.

Эти строки должны быть в UTF-8, и поэтому моя база данных работает в UTF-8. К сожалению, некоторые из этих строк плохие, содержат искаженный UTF-8, поэтому при запуске я получаю исключение

DBI Exception: DBD::Pg::st execute failed: ERROR: invalid byte sequence for encoding "UTF8": 0xb5

Я подумал, что могу просто игнорировать недействительные и позже беспокоиться о некорректном UTF-8, поэтому, используя этот код, он должен помечать и игнорировать неправильные заголовки.

if(not utf8::valid($title)){
   $title="Invalid UTF-8";
}
$data->title($title);
$data->update();

Однако Perl, кажется, считает, что строки допустимы, но он все равно выдает исключения.

Как я могу заставить Perl обнаруживать плохой UTF-8?

Ответы на вопрос(3)

Ваш ответ на вопрос