Details
-
Type:
Bug
-
Status:
Closed
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: 1.6.5, 1.7.2, 1.8
-
Component/s: Filters
-
Labels:None
-
Environment:PHP5, tidy filter running
-
Database:Any
-
Affected Branches:MOODLE_16_STABLE, MOODLE_17_STABLE, MOODLE_18_STABLE
-
Fixed Branches:MOODLE_16_STABLE, MOODLE_17_STABLE, MOODLE_18_STABLE
Description
After getting crazy last days with one Spanish moodler about how his site was showing accents and other chars (only in some places, apparently in a random fashion) I discovered that it had the tidy filter enabled and running.
So, one simple string like this:
'áéíóú'
after being processed by format_text() is showed in browser like:
áéÃóúñÑ
(enclosed by html <p> tags in source code)
It seems that tidy breaks things sometimes... ![]()
To reproduce:
1) Enable tidy filter (ensure you've installed the PHP5 tidy extension (tidy_repair_string).
2) Copy the attached test.php to your moodle dirrot.
3) Invoke it from the browser.
...confirmed in Spanish forums:
it seems that, by default the tidy_repair_string() function works with ascii (or iso-8859-1). But it has one third parameter that allows to specify the desired encoding.
Just change the function call from:
$text = tidy_repair_string($text, $tidyoptions);
to
$text = tidy_repair_string($text, $tidyoptions,'utf8');
And everything should work perfectly.
Note that, under 1.6 & 1.7 we need to ask for $CFG->unicodedb before setting than parameter, while under 1.8 and HEAD we can apply it directly.
Ciao