2013-11-27 142 views
0

我得到了一个输入文件,我需要将其直接打印到html页面中。cgi/perl/html - 打印到html时要转义哪些字符?

我做了$inputfile =~ s/\n/<br>/g;有没有其他特殊字符我应该知道可能不是<和>将这个$ inputfile打印到html时?

+0

您是否知道输入文件的字符编码和HTML文件的所需编码 - 或者现在是7位ASCII码中的所有内容? –

+0

我不知道输入文件的字符编码。它可以是第三方工具日志文件中的任何内容 – Gordon

+0

然后,您将无法获得*完美*解决方案。但是,如果您按照答案中的建议运行HTML :: Escape之类的东西,那么按照原样转换回报,它应该非常接近,而不需要太多的努力。 –

回答

9

你绝对应该使用HTML::Escape而不是做一些设计不当的hackjob,这会让所有处理你代码的人(包括你)在未来诅咒你的名字。

很简单 - 安装HTML通过CPAN ::逃生,然后用它这样的:

use HTML::Escape qw(escape_html); 
my $escaped_string = escape_html($string); 

需要注意的是,如果你想保留空白的格式,你应该使用一个模块要做到这一点,为好,如因为HTML::FromText - 上面的代码不会自动将换行符转换为
标记,因为这完全不同于将不安全字符转义为HTML实体。