【发布时间】:2021-09-26 10:03:35
【问题描述】:
我有这个字符串例如:
This is an example text ã&"><£
当我在字符串上运行这个 Perl 代码时:
my($string)= @_;
$string =~ s/>//g;
$string =~ s/<//g;
$string =~ s/&/and/g;
$string =~ s/\"//g;
$string =~ s/-//;
$string =~ s/ó//;
$string =~ s/;//g;
$string =~ s/&/&/g;
$string = encode_entities($string, '<>&"');
$string = encode_utf8($string);
return $string;
我收到了这个结果:
This is an example text ã£ã£
而不是预期的:
This is an example text ã&"><£
我该如何解决?
【问题讨论】:
-
请出示您的完整剧本。请参阅minimal reproducible example 了解更多信息
-
嗨,我用完整的脚本编辑了上面的问题。那些行是: $string =~ s/>//g;删除特殊字符?
-
是的,您显示的代码删除了一些字符并替换了其他一些字符。我不确定你的意思?
-
对不起,我是 perl 新手,这不是我写的代码。只是为了理解,这行代码: $string =~ s/&/&/g;从我的字符串中删除 &?
-
尝试运行
echo "&1&2" | perl -pE 's/&/&amp;/g'你会看到它用“&1;&2;”替换了字符串“&1&2”