http://www.perlmonks.org?node_id=1134341

igoryonya has asked for the wisdom of the Perl Monks concerning the following question:

When I send a POST request to a certain url, I get the string like that:
Compruebe si las direcciones URL que encontr\u00e9 en el archivo de configuraci\u00f3n son v\u00e1lidos

How do I decode strings, such as:
\u00e9
\u00f3
\u00e1

I've tried different things:

#It gives weird result: $text =~ s/\\u(.{4})/pack('u', $1)/ge; $text =~ s/\\u(.{4})/pack('U', $1)/ge; #Says, nonnumeric argument: $text =~ s/\\u(.{4})/pack('u', "0x$1")/ge; $text =~ s/\\u(.{4})/pack('U', "0x$1")/ge; $text =~ s/\\u(.{4})/chr("0x$1")/ge; #Just stays as a changed string (\x{00e9}, \x{00f3}, \x{00e1}, #or with \0x{....}), doesn't interpolate: $text =~ s/\\u(.{4})/\\x{$1}/g; $text =~ s/\\u(.{4})/\\0x{$1}/g; #does not change anything: use Text::Unidecode; $text =~ s/\\u(.{4})/unidecode($1)/ge;

How to convert those encoded strings to utf8 chars?