2013-11-27 53 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實體。