如何防止 html 实体的双重编码,或以编程方式修复它们?
我正在使用 HTML::Entities 中的 encode() 函数perl 模块对用户输入中的 HTML 实体进行编码。这里的问题是我们还允许用户直接输入 HTML 实体,而这些实体最终被双重编码。
例如,用户可以输入:
Stackoverflow & Perl = Awesome…
这最终被编码为
计算器Perl = Awesome…
这在浏览器中呈现为
Stackoverflow & Perl = Awesome…
我们希望它呈现为
Stackoverflow 和 Perl = 很棒...
有没有办法防止这种双重编码?或者是否有可以轻松纠正这些双重编码问题的模块或代码片段?
非常感谢任何帮助!
最佳答案
可以先解码字符串:
my $input = from_user();
my $encoded = encode_entities( decode_entities $input );
关于html - 当输入允许时,如何防止对 html 实体进行双重编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2604569/