- 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 UTF-8 remark text before saving it to the file
and the HTML::Entities::encode_entities command that is run on that remark text does
not work with UTF-8 text.
- If the UTF-8 text in the remark is decoded before running through the cleanhtml command
then the characters with diacritical marks are correctly shown.
- Have tested out the fix on a remark with a range of different characters with
diacritical marks and all of the ones tested were displayed correctly with the fix while
in the original form they were mangled.
Fixes: Bug#12395
Tested-by: Adolf Belka <adolf.belka@ipfire.org>
Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
# Go further if there was no error.
if ( ! $errormessage) {
# Check if a remark has been entered.
+
+ # decode the UTF-8 text so that characters with diacritical marks such as
+ # umlauts are treated correctly by the following cleanhtml command
+ $cgiparams{'REMARK'} = decode("UTF-8", $cgiparams{'REMARK'});
+
+ # run the REMARK text through cleanhtml to ensure all unsafe html characters
+ # are correctly encoded to their html entities
$cgiparams{'REMARK'} = &Header::cleanhtml($cgiparams{'REMARK'});
my %dns_servers = ();