Il problema è con SET NAMES utf8
comando. In MySQL il set di caratteri utf8 non è veramente utf8, è supporta solo caratteri fino a 3 byte
e il carattere in questione ha 4 byte:
Il vero utf8 è utf8mb4 che usi come set di caratteri nel campo stesso. Quindi, usa SET NAMES utf8mb4
Quindi da Perl dovresti usare {mysql_enable_utf8mb4 => 1}
invece di {mysql_enable_utf8 => 1}
.