2

私はPerlを使用しており、次の文字列を取得しました:

agn\u00e8s b

どのように変換できますか

アニエスb

?

以下のコードを使用しようとしました。

my $hex = "agn\u00e8s b";
$hex =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;
print "$hex\n";

しかし、それは失敗し、奇妙な性格を示しました。さらに、中国語の単語も表示する必要があります。例えば、

\u9eb5\u5305

次のように変換するにはどうすればよいですか?

麵包

4

2 に答える 2

3
my $s = "agn\\u00e8s b";
$s =~ s/\\u(....)/chr(hex($1))/eg;
print "$s\n";

出力をエンコードすることを忘れないでください

use open ':std', ':encoding(UTF-8)';
于 2012-11-01T10:18:53.283 に答える
0

これを使って:

$hex =~ s/(\u[a-fA-F0-9][a-fA-F0-9][a-fA-F0-9][a-fA-F0-9])/encode(' utf-8', chr(hex($1)))/eg;

于 2012-11-01T09:47:28.703 に答える