Thank you for this patch.

Indeed we only need to escape once.

-Michael

> On 28 Feb 2024, at 13:35, Adolf Belka <adolf.belka(a)ipfire.org> wrote:
> 
> - If Freifunk München e.V. is entered as a remark it gets converted to
>   Freifunk München e.V.
> - This is because cleanhtml is used on the remark text before saving it to the file  and
>   the HTML::Entities::encode_entities command that is run on that remark text encodes all
>   higher bit characters as unsafe characters and replaces them with their HTML entity
>   representation.
> - Have tested out the remark with a range of different characters with diacritical marks
>   and all of the ones tested were re-written.
> - The use of the cleanhtml makes sense when used on URL's or on text that is going to be
>   printed as part of the HTML code for a page but it doesn't seem to make sense for text
>   used in a remark.
> - The cleanhtml function is only used on the remark text in dns.cgi and not on any other
>   entries on the page.
> - Removing the call to the cleanhtml function results in the German umlauts being printed
>   in the remark section.
> - Many of the WUI pages have the cleanhtml function used on remark or comment text.
> - fwhosts.cgi does not use cleanhtml anywhere. So all its remark sections work with
>   characters with diacritical marks.
> - If this patch is accepted, I will then submit patches for the other WUI pages where
>   characters with diacritical marks are re-written in remark or comment sections.
> 
> Fixes: Bug#12395
> Tested-by: Adolf Belka <adolf.belka(a)ipfire.org>
> Signed-off-by: Adolf Belka <adolf.belka(a)ipfire.org>
> ---
> html/cgi-bin/dns.cgi | 2 --
> 1 file changed, 2 deletions(-)
> 
> diff --git a/html/cgi-bin/dns.cgi b/html/cgi-bin/dns.cgi
> index 0a34d3fd6..f3dd5c7a9 100644
> --- a/html/cgi-bin/dns.cgi
> +++ b/html/cgi-bin/dns.cgi
> @@ -141,8 +141,6 @@ if (($cgiparams{'SERVERS'} eq $Lang::tr{'save'}) || ($cgiparams{'SERVERS'} eq $L
> 
> # Go further if there was no error.
> if ( ! $errormessage) {
> - # Check if a remark has been entered.
> - $cgiparams{'REMARK'} = &Header::cleanhtml($cgiparams{'REMARK'});
> 
> my %dns_servers = ();
> my $id;
> -- 
> 2.44.0
>