sub PolishHTML {
my $str = shift;
if ($AllowXHTML) {
$str =~ s{(.*?)(&\w+;|\d+;|<\w[\w\d:\-]*(?:\s+\w[\w\d:\-]*(?:\s*=\s*(?:[^" '><\s]+|(?:'[^']*')+|(?:"[^"]*")+))?)*\s*/?>|\w[\w\d:\-]*>||$)}
{HTML::Entities::encode($1, '^\r\n\t !\#\$%\"\'-;=?-~').$2}gem;
} else {
$str =~ s{(.*?)(&\w+;|\d+;|<\w[\w\d:\-]*(?:\s+\w[\w\d:\-]*(?:\s*=\s*(?:[^" '><\s]+|(?:'[^']*')+|(?:"[^"]*")+))?)*\s*>|\w[\w\d:\-]*>||$)}
{HTML::Entities::encode($1, '^\r\n\t !\#\$%\"\'-;=?-~').$2}gem;
}
return $str;
}