5
I managed to solve the problem by removing all xoops_utf8_encode calls in backend.php. For example:
$tpl->assign('channel_title', xoops_utf8_encode(htmlspecialchars($xoopsConfig['sitename'], ENT_QUOTES)));
should be changed to:
$tpl->assign('channel_title', htmlspecialchars($xoopsConfig['sitename'], ENT_QUOTES));
So the problem could be that htmlspecialchars() is already returning UTF-8 characters and xoops_utf8_encode() is badly re-encoding the characters, could it be?
I've seen xoops_utf8_encode is in the end calling XoopsLocalAbstract:utf8_encode() and at the beginning of utf8_encode it says:
// Each local language should define its own equalient utf8_encode
What does it mean?
BTW, backend.php seems to be the only XOOPS core file calling xoops_utf8_encode.
Any other having this problem? I think it should affect to all utf8 installations using non-english characters.