Found this on 4.4.3 with static pages but most likely applies to all 4.4.x on all pages. If you have a static page "First & Second" you can give it a name "First & Second" so you don't get validation errors. Custom title of the page cannot be saved as "First & Second" - it converts back to "First & Second". So when you go to the page on the front end the title of the page in the html code is "First & Second" and what you see on browser title is "First & Second" which is obviously wrong. This is due to conversion made in /include/templater/plugins/function.get_title.php by this code
Code:
// escape
if (X_USE_NEW_HTMLSPECIALCHARS) {
$charset = $smarty->get_template_vars('default_charset') ? $smarty->get_template_vars('default_charset') : 'ISO-8859-1';
$title = @htmlspecialchars($title, ENT_QUOTES, $charset);
} else {
$title = htmlspecialchars($title, ENT_QUOTES);
}
Adding false to this line
Code:
$title = @htmlspecialchars($title, ENT_QUOTES, $charset, false);
so no encoding is performed on existing html entities fixes it.
This same is use also for meta description and keywords
/include/templater/plugins/function.meta.php