在XML文件中,我需要将字符代码127上方的所有字符转换为相应的文字实体(通常将é
转换为é
)。
这是我写的,但它不起作用。
sub as_entity{
my $char = shift;
return sprintf("&#x%.4x;", ord($char));
}
sub entitify{
my $str = shift;
$str =~ s/([\x7f-\x{ffffff}])/(?{as_entity($1)})/g;
return $str;
}
似乎我无法在替换部分中使用(?{...})
...
实现这一目标的最佳方式是什么?