我有一个测试字符串,如:
my $input = "testing &test ₨";
my $output = HTML::Entities::encode_entities($str,"<>&\"'");
所需的输出是
testing &test ₨
但HTML :: Entities :: encode_entities正在将其编码为
testing &test &#8360;
总结一下,我希望HTML :: Entities对“&amp;”进行编码。仅当字符不表示HTML实体编号时才会出现。
答案 0 :(得分:7)
首先需要解码字符串,然后编码它:
#!/usr/bin/env perl
use strict; use warnings; use v5.10;
use HTML::Entities ();
my $input = "testing &test ₨";
$input = HTML::Entities::encode( HTML::Entities::decode( $input ) );
say $input;
结果是
testing &test ₨
20A8
是8360
的十六进制版本。