Help for this page
$data =~ s{ ([^\w\s\xA0~!@#$%^&*\-_=+()[\]{}|;:'`",<.>/?\xA9\xA7]) }{ sprintf "{U+%04X}", ord($1) }xeg;
use charnames qw( :full ); ... }{ sprintf "{U+%04X}", ord($1) }xeg;