编码实体编号的HTML实体

时间:2013-01-28 23:08:03

标签: perl html-entities

我有一个测试字符串,如:

my $input = "testing &test ₨";
my $output = HTML::Entities::encode_entities($str,"<>&\"'");

所需的输出是

testing &amp;test &#8360;

但HTML :: Entities :: encode_entities正在将其编码为

testing &amp;test &amp;#8360;

总结一下,我希望HTML :: Entities对“&amp;”进行编码。仅当字符不表示HTML实体编号时才会出现。

1 个答案:

答案 0 :(得分:7)

首先需要解码字符串,然后编码它:

#!/usr/bin/env perl
use strict; use warnings; use v5.10;
use HTML::Entities ();
my $input = "testing &test &#8360;";
$input = HTML::Entities::encode( HTML::Entities::decode( $input ) );
say $input;

结果是

testing &amp;test &#x20A8;

20A88360的十六进制版本。