База данных имеет Windows -1252 кодировку
Более долгосрочное решение состоит в том, чтобы исправить это так, чтобы кодировка базы данных была UTF8.
Тем временем Вы можете проанализировать строку XML, используя XML :: Lib XML, а затем сериализовать ее в альтернативную кодировку, например:
use XML::LibXML;
my $doc = XML::LibXML->load_xml(string => $xml);
$doc->setEncoding('ascii');
my $ascii_xml = $doc->toString();
Любой не-ASCII символ в XML затем преобразуется в числовой объект c без потери данных, например: <title>Café life</title>
станет <title>Café life</title>
.
Если вы не можете поместить UTF-8 XML в базу данных , тогда я бы предположил, что нет особого преимущества в использовании windows -1252 вместо ASCII, а использование ASCII устраняет ряд потенциальных «пушек».